求教啊解决方案
求教啊啊啊啊
问题一:下面的这个程序,为什么输入5,得到结果为4,菜鸟求详细解答
#include <stdio.h>
main()
{ int x;
scanf("%d",&x);
if(x--<5)printf("%d",x);
else printf("%d",x++);
}
问题二:下面这个程序,为什么输入4,却得到5
#include <stdio.h>
main()
{ int x;
scanf("%d",&x);
if(x++>5)printf("%d",x);
else printf("%d\n",x--);
}
问题3:下面这个程序,由于没有break语句,得到的结果为什么是13,而不是12;难道是由于没有break语句,程序最终执行到了default语句。。。。。。。。。。。而不是执行到case11s结束????
switch(10)
{case 9:i+=1;
case 10:i+=1;
case 11:i+=1;
default:i+=1;
}
------解决方案--------------------
首先明确一个问题:
i++和++i的区别
i++语句的值和i的值是不一样的,两者差1
也就是a=i++;
那么有i-a==1成立
问题一
x--的值是5但是x是4,执行else语句,x++的值是4,但是x的值是5
故输出4
问题二
x++的值是4但是x是5,执行else语句,x--的值是5,但是x的值是4
问题三
没有break语言程序会执行到结束,不是到case 11就结束的。所以
写switch语言,一定要检查是不是要写break;
------解决方案--------------------
问题一:下面的这个程序,为什么输入5,得到结果为4,菜鸟求详细解答
#include <stdio.h>
main()
{ int x;
scanf("%d",&x);
if(x--<5)printf("%d",x); //这里x--, x变成4了,
else printf("%d",x++); //虽然走到了else, 但x++返回的还是4, ++x就是5了
}
问题二和1一样
问题3:下面这个程序,由于没有break语句,得到的结果为什么是13,而不是12;难道是由于没有break语句,程序最终执行到了default语句。。。。。。。。。。。而不是执行到case11s结束????
switch(10)
{case 9:i+=1;
case 10:i+=1;
case 11:i+=1;
default:i+=1;
}
你有没有看i是几啊? 肯定初始是9
------解决方案--------------------
问题1:x--是先将变量x减1然后引用变量x。
问题2:--x是先引用变量x然后将变量x减1。
问题3:你的解释是对的
问题一:下面的这个程序,为什么输入5,得到结果为4,菜鸟求详细解答
#include <stdio.h>
main()
{ int x;
scanf("%d",&x);
if(x--<5)printf("%d",x);
else printf("%d",x++);
}
问题二:下面这个程序,为什么输入4,却得到5
#include <stdio.h>
main()
{ int x;
scanf("%d",&x);
if(x++>5)printf("%d",x);
else printf("%d\n",x--);
}
问题3:下面这个程序,由于没有break语句,得到的结果为什么是13,而不是12;难道是由于没有break语句,程序最终执行到了default语句。。。。。。。。。。。而不是执行到case11s结束????
switch(10)
{case 9:i+=1;
case 10:i+=1;
case 11:i+=1;
default:i+=1;
}
------解决方案--------------------
首先明确一个问题:
i++和++i的区别
i++语句的值和i的值是不一样的,两者差1
也就是a=i++;
那么有i-a==1成立
问题一
x--的值是5但是x是4,执行else语句,x++的值是4,但是x的值是5
故输出4
问题二
x++的值是4但是x是5,执行else语句,x--的值是5,但是x的值是4
问题三
没有break语言程序会执行到结束,不是到case 11就结束的。所以
写switch语言,一定要检查是不是要写break;
------解决方案--------------------
问题一:下面的这个程序,为什么输入5,得到结果为4,菜鸟求详细解答
#include <stdio.h>
main()
{ int x;
scanf("%d",&x);
if(x--<5)printf("%d",x); //这里x--, x变成4了,
else printf("%d",x++); //虽然走到了else, 但x++返回的还是4, ++x就是5了
}
问题二和1一样
问题3:下面这个程序,由于没有break语句,得到的结果为什么是13,而不是12;难道是由于没有break语句,程序最终执行到了default语句。。。。。。。。。。。而不是执行到case11s结束????
switch(10)
{case 9:i+=1;
case 10:i+=1;
case 11:i+=1;
default:i+=1;
}
你有没有看i是几啊? 肯定初始是9
------解决方案--------------------
问题1:x--是先将变量x减1然后引用变量x。
问题2:--x是先引用变量x然后将变量x减1。
问题3:你的解释是对的