#include <stdio.h>
int fun(int num);
void main( )
{
int x,y,sum;
sum=0;
printf("请输入两个整数:");
scanf("%d%d",&x,&y);
sum=fun(x)+fun(y);
printf("sum=%d\n",sum);
}
int fun(int num)
{
int a,b;
a=0;
while (num!=0)
{
b=num%10;
a=a*10+b;
num=num/10;
}
return a;
}
答案是这样的,求大神告诉我子函数的a,b是什么,还有num为什么不等于0,最好在子函数里给注析。还有main函数的sum=fun(x)+fun(y)又是什么意思,我记得我平时调用不是这样子的
b=num%10; %对10取余,即求出num的个位数赋值给b
a=a*10+b;
比如num=32,b就=2,前面不是int a=0吗,a=a*10+b又是什么意思
原程序中并没int a =0;
int a =0 是对a初始化 int a ; a = 0;是对a赋值,不过这里并没有影响。
a是变量 ,当然可以 a = a*10+b “=”这个符号是赋值运算符。
你告诉我num ,a ,b分别是什么意思,num是指前面的X,Y吗?我要知道num ,a,b 是什么意思我就懂了
追答好的,在主函数中 sum = fun(x)+fun(y)
在这句话中调用了两次fun()函数
我们再来看 int fun(int num)
num是fun()函数的形参 ,即是前面的x和y。
a,b则是fun()函数中的局部变量。每次调用fun()函数都会重新定义。
第一次调用fun(x)
里面的num = x ;
刚开始 a = 0;
进入 while 循环后
b先等于 num即x的各位数 并把b给a;
第二次while循环 b等于num 的十位数,再给a,从而实现逆序数。
当fun(x)结束后
调用fun(y)
此时同理fun(x);
在int fun(int num)中 ,局部变量a,b在一次fun()函数结束后就会被释放,所以
fun(x)和fun(y)中的a,b。是相对独立的,不会有影响