main() { int a=10; b=10; printf("%d,%d",a,b); } 完全无语,这么简单的问题都会错误,求解,错误如题。
作者&投稿:休航 (若有异议请与网页底部的电邮联系)
最后结果: 11,19,30,1
原因:
d=++a=20||c++;
根据优先级加上括号就成了这样
d=(((++a) =20)) || (c++);
首先C的逻辑或运算时有个短路计算的规则,即||左边为真时不会进行右边的计算。
((++a) <= 10): ++a,+号在左边,先自增再比较,所以 a=11, 11<=10为假,进行b的运算。
((b--)>=20)) : b--,减号在右边,先比较再自减,所以比较时b=20,20>=20成立,比较完成后进行b的自减运算,完成时b=19,此时(((++a) =20)) 的值为真,不再进行c的运算。所以c的值不会变c=30,d为真即d=1
那是因为你前面只有一个%d,要想出两个就加两个%d
printf("a=%d b=%d
",a,b)
main前面少了这句话
而且,你的代码应该是存在返回值而造成的,但是main有没有加void,所以也出错了
你的b没有声明吧~好像~
帅哥 你的b变量都不声明呢 改成int a=10,b=10;
最前面 添加一个 void
同意楼上说法
崇贞感冒:[选项] A. )10,10,10,0, B. )10,9,9,0, C. )10,10,9,1, D. )9,9,9,1, 给点说明
四平市14782644761: #include main ( ) { int a=10,y=0 ; do { a+=2 ; y+=a ; if (y>50) break ; } while (a=8) ; p#include main ( ){int a=10,y=0 ;do {a+=2 ;y+=a ;if (y>50)break ;}while (a=8) ;... - ?
崇贞感冒:[答案] 这个程序应该是这样运行的执行main函数.a的初始值为10,y的初始值为0执行do里面的函数.结果是a=12,y=12while语句里面先执行 赋值语句a=8 然后是相当于while(8)为真.接着又执行do里面的函数.结果是a=10,y=22 .如此循...
四平市14782644761: int a=10;定义在main()函数里面和外边有什么区别呢 - ?
崇贞感冒: 函数外面是全局的,哪个函数里面都可以用..main()里面的,只有再main里面才能用,去其他函数里面不认的.
四平市14782644761: 程序运行结果main(){int a=10,i=i,j=2;printf(“%d,%o,%x\n”,a,a,a);printf(“i=%d\n”,i++); - ?
崇贞感冒: 应该是 main() { int a=10,i=0,j=2;printf("%d,%o,%x\n",a,a,a);printf("i=%d\n",i++); } 吧 结果:10,12,a0
四平市14782644761: #include<stdio.h> main() {int a=10,char x; a=x+a; printf("%d",a); } - ?
崇贞感冒: #include main() { int a=10,char x;--x没赋值 a=x+a; printf("%d",x);--输出这一句看看 printf("%d",a); }
四平市14782644761: 程序运行结果main(){int a=10,i=1,j=2;printf("%d,%o,%x\n"a,a,a);printf("i=%d\nq",i - ?
崇贞感冒: int a=10,i=1,j=2; printf("%d,%o,%x\n",a,a,a); printf("i=%d\nq",i++); printf("%c\n",i==j?'A':'B'); 运行后的输出是:10,12,a i=1 qA
四平市14782644761: c语言程序设计实训 - ?
崇贞感冒: 1, #include<stdio.h> void main() {int a=10,b=25,t;t=a;a=b;b=t;printf("a=%d,b=%d\n",a,b);}2,#include<stdio.h> void main() {int n,a,b,c,d;printf("请输入一个四位数:\n");scanf("%d",&n);while(n<1000||n>9999){printf("...