当前位置:首页 » 编程语言 » 数组输入时遇到结束c语言
扩展阅读
webinf下怎么引入js 2023-08-31 21:54:13
堡垒机怎么打开web 2023-08-31 21:54:11

数组输入时遇到结束c语言

发布时间: 2022-09-24 17:32:38

c语言怎么判断输入的结束

一般有两种方法:
1 在输入前 约定输入个数。 比如 先输入一个总数 再输入总数个或总数组的数据
2 约定输入结束标记
这个是最常用的。 比如 以空格 换行 或者EOF作为结束标记。
或者约定输入非法数据结束。

⑵ 求助,C语言中怎么判断一个数组以输入结束

一般是限制输入数组元素的个数,或者限定条件,比如输入的数值大于1的时候结束输入等等方法。

⑶ 在C语言中,怎样输入数列 以回车符''为结束标志

  1. 可以每读入一个数据到数组当中去,判断后面的空白字符是否为换行符,如果遇到换行符,就结束循环。

  2. 代码框架:

    inti=0,a[100];
    do{
    scanf("%d",&a[i++]);//读入数据到数组当中
    }while((getchar())!=' ')

⑷ 输入二维数组直到输入的n为-1结束c语言该怎样写 是不是要有while(scanf("%d",n),n+1),然后再输入数组元素

c++的代码
const int r=3,c=2;//r代表2维数组的行数,c代表2维数组的列数
int arr[r][c]={0},n=0;
for(int i=0;i<r;i++)
{
for(int j=0;j<c;j++)
{
cin>>n;//输入n
if(n!=-1)//如果n不等于-1
arr[i][j]=n;//就把n付给数组元素
else//否则,退出循环
break;
}
if(n==-1)
break;
}
c也是这个思路。

⑸ c语言中怎么用EOF来结束数组输入

eof
是个宏,其意思是:end
of
file,文件尾标志。
从数值上来看,就是整数-1
在c语言的头文件中对其进行了宏定义:
libio.h: # define eof (-1)当读文件操作时,遇到文件结束位置或读数据出错均会返回
eof。
(c语言中所有的输入输出操作均是按读文件的思想来设计的,或者说,是文件操作的一种特例,如getchar()就是fgetc(stdin)
的一个宏

int getchar() ; //从标准输入缓冲区读取一个字符,成功返回该字符的ascii值,出错,返回eof那么,如何在键盘输入时,产生eof呢?
不同的系统方法不同:
linux系统下,在输入回车换行后的空行位置,按
ctrl+d
(先按ctrl键,不放,再按d键)
windows系统下,在输入回车换行后的空行位置,按
ctrl+z,再回车确认
以下代码供参考:
#include
void main()
{
int ch;
do {
ch=getchar();
printf("ch=%d\n", ch ); //输出读返回的ch值,读到eof会输出-1
} while ( ch!=eof );
}

⑹ c语言矩阵数组输入,求指教,怎么判断结束

首先我没看到你初始化二维数组a[m][n],另外for语句的判断语句和条件语句写反了,应该是for(i = 0;i < m;i++),你那种写法当然会一直循环。

⑺ C语言怎样读入一个数组,然后在回车时结束读入

//你可以用do..while实现
//之所以用do..while是因为它在读入'?'之后再结束循环
#include <stdio.h>
int main()
{
char ch[10],c;
int i=0;
do
{
if((c=getchar())=='\n')//一旦输入回车就把当前元素赋值为?
ch[i]='?';
else
ch[i]=c;//没输入回车则赋值为你输入的字符
++i;
}while(c!='\n');
ch[i]='\0';//我主要为了下面使用puts函数,加了个字符串结束标志
puts(ch);
return 0;
}

⑻ C语言 好几个一维的数组 如何结束输入

当读到EOF时结束
Windows采用Ctrl+Z产生一个EOF,*nix采用Ctrl+D产生一个EOF
文件末尾本来就是一个EOF

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

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

⑽ c语言 数组输入时会自动停止

#include <stdio.h>
#include <stdlib.h>
int main()
{
int i=0,j=0,k=0,b=0,c[6]={0};
float a[30][2],aver,s=0;
/* for (i=0;i<6;i++)
{
c[i]=0;
}*///可用memset(c,0,24)来代替;其实最好直接定义时用c[6]= {0};很简单
for (i=0;i<30;i++)
{
for(j=0;j<2;j++)
{
scanf("%f",&a[i][j]);
// if (a[i][1]<0)//这里第一次只输入了a[i][0],但你对a[i][1]判断当然出错了……
if (a[i][j]<0)//改成这样违背你的本意么
break;
}
if (a[i][1]<0)
break;
}
printf("Total students:%d ",i);
printf("Fail: number--score ");
for (b=0;b<i;b++)
{
if(a[b][1]<60)
{
printf("%.0f------%.0f ",a[b][0],a[b][1]);
k++;
}
}
printf("Fail students = %d ",k);
for (b=0;b<i;b++)
{
s=s+a[b][1];
}
aver = s/i;
printf("aver = %.6f ",aver);
printf("Above aver: ");
printf("number--score ");
k=0;
for(b=0;b<i;b++)
{
if(a[b][1]>aver)
{
printf("%.0f------%.0f ",a[b][0],a[b][1]);
k++;
}
}
printf("Above aver students = %d ",k);
for (b=0;b<i;b++)
{
if (a[b][1]<60)
c[0]++;
else if (a[b][1]<70)
c[1]++;
else if (a[b][1]<80)
c[2]++;
else if (a[b][1]<90)
c[3]++;
else if (a[b][1]<100)
c[4]++;
else c[5]++;
}
printf("<60 %d %2f%% ",c[0],(float)c[0]/i*100);//(int/int)是不行滴,要转换成float才能算%比
printf("60--69 %d %2f%% ",c[1],(float)c[1]/i*100);
printf("70--79 %d %2f%% ",c[2],(float)c[2]/i*100);
printf("80--89 %d %2f%% ",c[3],(float)c[3]/i*100);
printf("90--99 %d %2f%% ",c[4],(float)c[4]/i*100);
printf(" 100 %d %2f%% ",c[5],(float)c[5]/i*100);
return 0;
}


愿亲学习进步哦!☺