当前位置: 代码迷 >> C语言 >> [求助]为什么这个程序是错误的
  详细解决方案

[求助]为什么这个程序是错误的

热度:55   发布时间:2007-11-12 21:44:51.0
[求助]为什么这个程序是错误的
main()
{int a[5],i=0;
scanf("%d",&a[i++]);
while(a[i]!='#'&&i<5)
scanf("%d",&a[i++]);
i=0;
while(a[i]!='#'&&i<5)
printf("%d ",a[i++]);
}


我输入:1 2 3 #
为什么结果不是: 1 2 3 啊
搜索更多相关的解决方案: int  main  结果  

----------------解决方案--------------------------------------------------------


----------------解决方案--------------------------------------------------------
              那LZ输出的结果是??
----------------解决方案--------------------------------------------------------
以下是引用liweiqing在2007-11-12 21:44:51的发言:
main()
{int a[5],i=0;
scanf("%d",&a[i++]);
while(a[i]!='#'&&i<5)
scanf("%d",&a[i++]);
i=0;
while(a[i]!='#'&&i<5)
printf("%d ",a[i++]);
}


我输入:1 2 3 #
为什么结果不是: 1 2 3 啊

对整数输入而输入一个字符(无论哪个)都会非正常结束输入.
所以你的'#'根本不会在数组里,那你输出的时候当然还到5才可以结束了,这样就有多余的随机数输出.


----------------解决方案--------------------------------------------------------

我运行了下lw_China写的,输出无数个0
怎么才能实习楼主的要求呢?。。。。


----------------解决方案--------------------------------------------------------
回复:(liweiqing)[求助]为什么这个程序是错误的
呵呵 结果是什么? 输出的个数是五个吗?
main()
{char a[5];
int i=0,j=0;
scanf("%d",&a[i++]);
while(a[i]!='#'&&i<5)
scanf("%d",&a[i++]);
i=0;
while(a[i]!='#'&&i<j-1)
printf("%d ",a[i++]);
}
----------------解决方案--------------------------------------------------------
呃,还没学到那里去哦!
----------------解决方案--------------------------------------------------------

楼上的,你的程序完全没结果啊~还有,我不明白你的J代表什么,J=0,但I<J-1??
另外,char a[5]就可以解决对整数输入而输入一个字符(无论哪个)都会非正常结束输入了??


----------------解决方案--------------------------------------------------------
以下是引用tangguobiao在2007-11-13 0:06:59的发言:

我运行了下lw_China写的,输出无数个0
怎么才能实习楼主的要求呢?。。。。

那不是我写的,是lz写的.


----------------解决方案--------------------------------------------------------

#include<stdio.h>
int main(void)
{
char a[5];
int i=0;

while(a[i]!='#'&& i<5)
{
scanf("%c",&a[i++]);

}
i=0;
while(a[i]!='#'&& i<5)
{
printf("%c",a[i++]);
}
return 0;
}

// 可改为这样。


----------------解决方案--------------------------------------------------------
  相关解决方案