제곱을 구하는 프로그램이다.
두 가지의 문제를 제시했다. 첫번째는 Call-by-value 형태의 프로그램, 두번째는 Call-by-reference 형태의 프로그램을 나타내어야 한다.
#include <stdio.h>
int SquareByValue(int n) {
int value;
value = n * n;
return value;
}
int main(void) {
int num;
printf("제곱 계산하는 프로그램입니다. 숫자를 입력하세요: ");
scanf_s("%d", &num);
printf("제곱의 값은 : %d", SquareByValue(num));
return 0;
}
#include <stdio.h>
int SquareByReference(int * ptr) {
*ptr *= *ptr;
}
int main(void) {
int num;
printf("제곱 계산하는 프로그램입니다. 숫자를 입력하세요: ");
scanf_s("%d", &num);
SquareByReference(&num);
printf("제곱의 값은 : %d ", num);
return 0;
}
#include <stdio.h>
int Swap3(int* ptr1, int*ptr2, int*ptr3){
int temp1=0, temp2=0;
temp1 = *ptr1;
temp2 = *ptr2;
*ptr1 = *ptr3;
*ptr2 = temp1;
*ptr3 = temp2;
return *ptr1, * ptr2, * ptr3;
}
int main(void) {
int num1, num2, num3;
printf("스왑 함수를 사용할 세 개의 숫자를 차례로 입력하세요 : ");
scanf_s("%d %d %d", &num1, &num2, &num3);
Swap3(&num1, &num2, &num3);
printf("결과는 %d %d %d", num1, num2, num3);
return 0;
}
Swap 함수 인자가 세개라고 temp를 두개 만들면 될 줄 알았는데 2개를 만들어도 구현이 가능했다.
int temp = *ptr3;
*ptr3 = *ptr2;
*ptr2 = *ptr1;
*ptr1 = temp;
많은 도움이 되었습니다, 감사합니다.