C语言在输入一维数组时,如果想要用回车停止输入,那么这种写法对吗?

if(a[i]==\n)
break;

这还真有点小学问,如果是字符数组,if(a[i]!='\n') break;就可以了,但得把不需要的那个'\n'从数组中用a[i]='\0';抹掉并添加了结束符。要是数字数组,比如整数数组呢,上面方法就不凑效了。用下面代码可实现——

温馨提示:答案为网友推荐,仅供参考
第1个回答  2019-12-15

因为每个数据输入结束,默认以空格,制表符,回车结束,因此这样判断就需要用getchar之类的逐字符输入并做判断才能合适,但逐字符输入又必须将数字字符连起来组成数字并翻译成数字输入变量,这样比较麻烦。

一般一维数组输入一般事先确定数字个数,或者以特殊数字结束,或者可以:

int a[20],n;

n=0;

while ( 1 ) { 

  if ( scanf("%d",&a[n])==1 ) { n++; if ( n>=20 ) break; }

  else break; //没有获得新输入的数据,比如遇到了回车符,则结束循环

}

你题目中如果a[i]的类型是char型,也要写做a[i]=='\n'

本回答被网友采纳
第2个回答  2019-12-15
这种做法是错误的,会导致部分程序出现错误追问

怎么修改

第3个回答  2019-12-15
最佳不知你用的何种循环,试试 ctrl+z
相似回答