(난이도 : 못한다면 강좌를 다시 읽어보아야 할 것입니다)
#include <stdio.h>
int MagicBox(int x)
{
x += 4;
return x;
}
int main()
{
int x;
printf("마술 상자에 넣을 수를 입력 : ");
scanf_s("%d", &x);
printf("마술 상자에서 나온 값 : %d \n", MagicBox(x));
return 0;
}
(난이도 : 下)
#include <stdio.h>
int slave(int master_money, int today_incom)
{
master_money += today_incom;
return master_money;
}
int main(void)
{
int master_money = 100000;
int today_incom = 0;
printf("귀족이 오늘 벌어들인 돈 : ");
scanf_s("%d", &today_incom);
printf("귀족의 재산과 당일 수입을 합친 값 : %d", slave(master_money, today_incom));
return 0;
}
(난이도 : 下)
#include <stdio.h>
int total(int n)
{
int i, sum = 0;
for (i = 1; i <= n; i++)
{
sum += i;
}
return sum;
}
int main(void)
{
int n;
printf("1부터 n까지 합에서 n 값 : ");
scanf_s("%d", &n);
printf("1부터 n까지의 합 : %d \n", total(n));
return 0;
}
(난이도 : 下)
#include <stdio.h>
int PrimeNumber(int n)
{
int i, j; // for문 돌리기
int prime = 0; // 소수 개수
int totalprime = 0; // 총 소수 개수
for (i = 2; i <= n; i++)
{
for (j = 2; j <= i; j++)
{
if (i % j == 0)
{
prime++;
}
}
if (prime == 1)
{
totalprime++;
}
prime = 0;
}
return totalprime;
}
int main(void)
{
int n;
printf("1 부터 n 까지의 소수의 개수를 알려드립니다 \n");
printf("n 값 입력 : ");
scanf_s("%d", &n);
printf("1 부터 %d 까지의 소수의 개수는 : %d \n", n, PrimeNumber(n));
return 0;
}
(난이도 : 中)
예) factorize(10); 출력결과 : 2 × 5
factorize(180); 출력결과 : 2 × 2 × 3 × 3 × 5
#include <stdio.h>
int PrimeFactorization(int n)
{
int i, j;
for (i = 2; i <= n; i++)
{
if (n % i == 0)
{
n /= i;
printf("%d", i);
if (n != 1)
{
printf("*");
}
i = 1;
}
}
return 0;
}
int main(void)
{
int n;
printf("소인수분해를 시킬 n 값 입력 : ");
scanf_s("%d", &n);
printf("n = %d %d = ", n, n);
PrimeFactorization(n);
return 0;
}
arg였다면 값을 복사해왔을텐데
*arg라는걸로 봐선 값이 아닌 주소를 복사해와 그 주소로 직접 찾아가 값을 변경한다고 생각한다.
즉 *arg의 값에 변화를 줄 경우 그 변화가 *arg뿐만이 아니라 연결될 변수의 값에까지 영향이 미치는 것이라 생각한다.
int function(int *arg)와 같은 함수는 들어올 인자를 가르키는 포인터를 가진 함수를 뜻한다
지역변수로 선언된 변수를 인자로 넘겨주면 접근이 가능하다.
포인터 변수 무엇인가를 *arg 라는 인자를통해서 받는 것이다
예를들어서
int arr=0;
int *ptr = &arr;
이라면 function 함수를 만들어서 function(*ptr) 를 입력한다면 arr의 값(0) 이 *arg라는 인자를 통해서 전달되는것이다