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

供稿:hz-xin.com     日期:2025-01-16
C语言如何做到回车停止输入

1、打开软件,直接使用int类型来定义一个变量用于保存getchar()返回的字符类型。

2、接下来是循环,如下图所示,直到输入的字符为回车键则退出并输出所有输入的内容。

3、最后,全部的代码如下图所示,输入好了之后回车确定,这样就可以直到回车停止输入。

有点看不懂你的意思....
如果你是说对字符型数组的某一个数组元素进行输入赋值的话

那么肯定不会有\0,因为\0只在字符串中有系统自动添加
所以编译器会读取一个 回车符'
',到printf输出时会自动换行
如图 注意 第二行是printf输出
后出现的换行

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



因为每个数据输入结束,默认以空格,制表符,回车结束,因此这样判断就需要用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]=='
'



这种做法是错误的,会导致部分程序出现错误

最佳不知你用的何种循环,试试 ctrl+z

编写c语言程序一维数组a中有20个整数,编写程序在数组a中查找元素q,如果...
include <stdio.h>int main(void){ int a[20] = {自己写一点数字}; int i = 0,k,q; printf("Please input the Number:"); scanf("%d",&q); for(;i < 19; ++i){ k = 0; if(a[i] == q){ k = i; break; }else{ k = -1; } ...

c语言,编写一个程序可以输入任意一个一维数组,代码
你好,你的意思是通过键盘输入数组的元素,然后将数组输出吗?如果是这样的话,那么有两种方法。第一种:在输入数组元素之前,得先输入数组的长度。第二种:使用链表。这时就不需要指定数组的长度 了。我先确定一下是不是这样,如果你确实有这个需求的话,我再编写代码,好吗?

用c 语言编程 输入一个一维数组求平均数,正数,负数的个数
\/*给你改好了, 具体的都在代码里加了注释, 只要输入的时候每次输入一个数字就按下回车,当输入了10个数字后自然会显示出结果*\/ include <stdio.h> main(){float a[10],i,n=0,*pa=a,sum=0.0,max,min;for(i=0;i<10;i++){ scanf("%f",pa);\/\/if((*pa)=='\\n') break; ...

C语言:通过键盘输入10个整数在一维数组中,并且把该数组中所有为偶数的...
把x[9]改为x[10]就可以了。你要是x[9]的话就是开辟了9个数的空间

C语言题:输入十个数用一维数组分别用冒泡法与选择排序法进行排序_百 ...
逆序反之) *\/temp = arr[j];arr[j] = arr[j+1];arr[j+1] = temp;}}}\/* 选择排序 *\/\/* 1. 将初始数组分为两段,前段为已排序数组,后段为未排序数组 *\/\/* 2. 在未排序数组中寻找最值元素,将其然后放到已排序数组的末尾 *\/\/* 3. 对所有元素均重复以上步骤,直至最后一个元素...

C语言:在键盘上输入n个数存入一维数组,求出其综合,并存到数组的末尾
include<stdio.h>#include<stdlib.h>void res_show(int *a, int n){ int i; printf("array : "); for(i = 0; i < n; ++i) printf("%d ", a[i]); printf("\\n"); return;}int main(){ int *p, n, tot, i; tot = 0; printf("input n :...

C语言:已知有20个整数保存在一维数组中,输入整数n,调用判断函数对数组...
include<studio.h> void main(){ int a[20]={1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20};int n,i;scanf("%d",&n);for(i=0;i<20;i++){ if(a[i]%n==0){ printf("%d",a[i]);} } }

C语言,输入有11个数的一维数组,在顺数第四个开始到第七个变成星号!这道...
这也太简单了吧!include<stdio.h> void main(){ int i;char a[11];printf("Input a mobile phone number:\\n");for (i=0;i<11;i++)scanf("%c",&a[i]);for (i=3;i<7;i++)a[i]='*';for (i=0;i<11;i++)printf("%c",a[i]);printf("\\n");} ...

2.有10个数已经按由大到小的顺序存放在一维数组中,请输入其中的一个数...
printf("请输入您要查找的数 : ");scanf( "%d", &f );for( int i=0; i<10; i++){ if( f == a[ i ] ){ printf(“您要查找的数 %d 是 第 %d 个元素!\\n",f , (i+1));label = 1 ;break ;} } if ( label == 0 )printf("无此数!\\n\\n");} ...

...从键盘输入一个长度为10的实型一维数组,然后顺序输出数组中的元素...
C语言程序编写教程:创建一个程序,接收用户输入的十个实数,并依次输出这些数值,同时找出其中的最大值及其对应的下标。首先定义一个长度为10的实型一维数组,然后使用循环结构从键盘读取十个实数值。接着遍历数组,比较元素大小,记录下最大值及其位置。最后输出数组所有元素,并显示最大值及其下标。下面...