C语言,初学前2章问题。

[复制链接]
查看11 | 回复5 | 2011-6-30 22:57:56 | 显示全部楼层 |阅读模式
inti=0;

while(i++<=2)

printf("i=%d\n",i)输出结果是多少,为什么?
不好意思,打错了应该是
inti=0;

while(i++<=2);

printf("i=%d\n",i);

回复

使用道具 举报

千问 | 2011-6-30 22:57:56 | 显示全部楼层
引用点上面兄弟说的,再给你补充点!1. "\n" 是换行的意思 printf("please input number:\n"); scanf("%d",&x); 运行时光标是在下一行,没有"\n" 光标是在number后面 2.&个符号为取地址符号,scanf("%d",&x)就是将你输入的值放进变量X的地址里,当然你下面要用X变量时是不需要加& 所谓地址:就是计算机把数存到内存时的地址!你可以理解为咱们往箱子(内存)里装东西(数据),然后用张纸记录下那个箱子装了啥样的东西!scanf就是需要知道装东西到那个箱子,所以需要一个地址,而我们在变量的前面加上一个&就是表示这个数是这个变量的地址!3.int i; ...
回复

使用道具 举报

千问 | 2011-6-30 22:57:56 | 显示全部楼层
结果:i=1i=2i=3原因:while(i++<=2)
//i++,这个语句符号表示此处执行完后给i值加1,但判断的时候未执行完此语句,i值还没有加1
printf("i=%d\n",i)
//走到这一步,i的值就已经被加1了依次是:
//第一次...
回复

使用道具 举报

千问 | 2011-6-30 22:57:56 | 显示全部楼层
输出i=1i=2i=3因为while里面当i=0时候是i++也就是先比较i和2谁大,0<=2返回true进入循环,然后i再加1,然后就是i=1输出的结果,当i=1时也复合,输出i=2,当i=2时也符合,输出i=3,当i=3时不符合 退出循环...
回复

使用道具 举报

千问 | 2011-6-30 22:57:56 | 显示全部楼层
结果123请用脑袋运行一下这个程序 : 当 i = 0 ,i<=2成立 , 输出 1 (因为 i++ 先比较,然后再自加) 当 i = 1 ,i<=2成立 , 输出 2 当 i = 2 ,i<=2成立 , 输出 3 当 i = 3 ,i<=2不 成立 程序员的脑袋就是执行程序...
回复

使用道具 举报

千问 | 2011-6-30 22:57:56 | 显示全部楼层
while后有一个分号,输出4...
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

主题

0

回帖

4882万

积分

论坛元老

Rank: 8Rank: 8

积分
48824836
热门排行