请看看这个c语言题目这是一个从标准输入 输入每行,并打印出每行,每行前面还有编号,这是书上的代码:#include#in

问题描述:

请看看这个c语言题目
这是一个从标准输入 输入每行,并打印出每行,每行前面还有编号,
这是书上的代码:
#include
#include
int main()
{
int ch;
int line;
int at_beginning;
line = 0;
at_beginning =1;
while((ch=getchar())!='0')
{
if(at_beginning == 1)
{
at_beginning=0;
line+=1;
printf("%d ",line);
}
putchar(ch);
if(ch=='\n')
at_beginning=1;
}
}
但是我想不用at_beginning这个变量,于是改了一下,但是问题多多,
#include
#include
int main()
{
int ch;
int line;
line = 0;
while((ch=getchar())!='0')
{
line+=1;
printf("%d ",line);
putchar(ch);
}
}
1个回答 分类:综合 2014-12-14

问题解答:

我来补答
第一个程序的at_beginning是用来指示新的一行是否开始.当ch接受到得字符是'\n'时说明本行结束,新的一行将要开始,at_beginning置1.你如果不用at_beginning的话,怎么来辨别是否有新行开始啊.像你直接在while中line+=1;那么每输入一个字符就要line+=1,显然不符合我们的意愿.
 
 
展开全文阅读
剩余:2000