느림의 미학 . 2013. 9. 4. 10:18

1번 


//call-by-value


#include <stdio.h>


int square(int a)

{

return a*a;

}

int main(void)

{

int a;

printf("숫자를 입력하세요 :");

scanf("%d",&a);

a=square(a);


printf("입력한 숫자의 제곱은 %d 입니다.\n",a);


return 0;

}



//call-by-reference 

#include <stdio.h>

void square(int *a)
{
*a=(*a)*(*a);
}
int main(void)
{
int a;
printf("숫자를 입력하세요 :");
scanf("%d",&a);
square(&a);

printf("입력한 숫자의 제곱 은 %d 입니다.\n",a);

return 0;
}


문제 2번 

#include <stdio.h>

void swap(int *a,int *b, int *c)
{
int tmp;
tmp=*a,*a=*b,*b=*c,*c=tmp;
}
int main(void)
{
int a=10;
int b=20;
int c=30;

printf("%d %d %d \n",a,b,c);
swap(&a,&b,&c);
printf("%d %d %d \n",a,b,c);
return 0;
}