标题:do while 问题
取消只看楼主
fanliguang
Rank: 2
等 级:论坛游民
帖 子:31
专家分:52
注 册:2012-2-26
结帖率:100%
已结贴  问题点数:20 回复次数:1 
do while 问题
#include <stdio.h>
int main()
{
  int i=0,a[10];
   printf("input numbers,if you want stop,input 100:\n");
  do
     { printf("i=%d,a[i]=%d",i,a[i]);
       scanf("%d\n",&a[i]);
       i+=1;
     }
   while(a[i]!=100);
    }
为什么,程序执行时,a[i]我还没赋值呢,他却print了一个极大的数来?

#include <stdio.h>
int main()
{
  int i=0,a[10];
   printf("input numbers,if you want stop,input 100:\n");
  do
     {    i+=1;   
         scanf("%d\n",&a[i]);
         printf("i=%d,a[i]=%d",i,a[i]);

     }
   while(a[i]!=100);
    }
这种情况,运行起来,输入第一个数,不输出,当输入第二个数时,却输出第一次运算数值。又是为什么呢?
搜索更多相关主题的帖子: include numbers 
2012-02-29 23:09
fanliguang
Rank: 2
等 级:论坛游民
帖 子:31
专家分:52
注 册:2012-2-26
得分:0 
回复 3楼 sunlang1234 并4楼。
谢谢回复。
其实,我在下面的代码中,已经将printf()和scanf()换了位置,
也出现了问题,我知道是scanf("%d\n",&a[i]);中的“\n”的问题,
但不知道是什么原因?
寻求帮助。

这样乱写,只是想理解下各种语句的执行情况。
2012-03-01 07:35



参与讨论请移步原网站贴子:https://bbs.bccn.net/thread-361912-1-1.html




关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 1.009543 second(s), 8 queries.
Copyright©2004-2025, BCCN.NET, All Rights Reserved