作业帮 > 综合 > 作业

两个C语言的题 结果我有答案 但是和我算的不一样

来源:学生作业帮 编辑:拍题作业网作业帮 分类:综合作业 时间:2024/05/02 04:36:53
两个C语言的题 结果我有答案 但是和我算的不一样
1.
main()
{ int i=2,p;
p=f(i,++i);
printf("%d",p);
}
int f(int a,int b)
{ int c;
if(a>b) c=1;
else if(a==b) c=0;
else c=-1;
return(c);
}
2.
main()
{ int i=2,p;
p=f(i,i++);
printf("%d",p);
}
int f(int a,int b)
{ int c;
if(a>b) c=1;
else if(a==b) c=0;
else c=-1;
return(c);
}
1的答案是0
2的答案是1
第二题答案是1?你在忽悠谁啊?要么是你的编译器有问题,在我本地的VC6.0上运行就是0
我给你解析一下:
1、f(i,++i) 其实就是相当于f(i,i=i+1) 也就是f(3,3),i=i+1,同时也改变了前面的i,不信你可以在f函数里面打印一下a和b的值,应该是等于3
2、跟上面一样,i的值并没有变化,所以传过去的也就是f(2,2)