[求助]为什么这个程序是错误的
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 啊
----------------解决方案--------------------------------------------------------
----------------解决方案--------------------------------------------------------
那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 啊
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;
}
// 可改为这样。
----------------解决方案--------------------------------------------------------