这样修改就可以了:
在循环体中不需要换行,在循环结束以后换行就可以了。
#include<stdio.h>
int main()
{ int a[10]= {0}
for(int i=0i<10++i)
printf("%d ",a[i])
printf("\n")
return 0
}
这是因为在C语言中,在用gets()输入字符时,遇到换行停止,这是由他提供的库函数的规定而确定的。但是它在保存的时候并没有把回车符保存在字符数组中而且自动添加的空字符作为字符串结束符。所以在for循环中循环停止条件为a[i]!='\0'。而不是a[i]!='\n'。遇到空格停止直接就是a[i]!=' '而不是a[i]!='\0',因为'\0'表示的是字符串结束符,而不是空格。查一下ACSII码,空格是32
,换行也是一个字符,为10
回车是
13
你这里说的换行应该是指我们写一行话,然后一个回车,跳到下一行,继续输入,其中的"换行"吧?要知道,我们按一下回车,输入的是两个字符!即10+13,因此,想判断一行末尾可以这样:ch[0],ch[1]去记录相连的两个字符,
if(ch[0]==10
&&
ch[1]==13)
{
//表示检测到了换行
}