c语言里面怎么输入多行数据?并且以输入0结束,输入0后才对输入数据进行处理

例如我要输入多行,每行输入一个整数,以0结束,如果输入偶数的话就输出“No Solution!”,输入奇数的话就输出“n-1”
例如
输入
5
4
0
输出
奇数
偶数
大家看看我的程序有什么问题
#include<stdio.h>
int main()
{
int n;
while(scanf("%d",&n),n)
{
if(n%2!=0)
printf("%d\n",n-1);
else printf("No Solution!\n");
}
return 0;
}
但是不行啊,他还是在我输入一个数后,回车,然后他就弹出结果了

通过getchar()得到每次输入的字符,如果不是0就存入一个buffer中,如果是0就跳出循环:

int n=0;//记录buffer中要处理字符的个数。
char ch;
char* buffer;

buffer = malloc(sizeof(char),MAX_SIZE);//MAX_SIZE是你自己定义的宏值

while( (ch=getcahr()) != '0')
{
将ch存入buffer中,记住考虑buffer存满的情况,则用realloc重新分配内存;
n++;//记录buffer中要处理字符的个数。
}
温馨提示:答案为网友推荐,仅供参考
第1个回答  2010-01-22
每次输入之后都判断一下,如果输入的是0就处理数据,否则继续输入数据
第2个回答  2010-01-22
你的代码就是对的
我就这样写
相似回答