c语言怎么对整形数组部分输入?

Python017

c语言怎么对整形数组部分输入?,第1张

首先你得让程序知道,什么时候该结束,例如我想就输入5个数,那么我提前告诉它,我就只有5个数

#include <stdio.h>

int main()

{

int a[10]

int cnt

scanf("%d", &cnt)

for (int i = 0i <cnti++)

scanf("%d", &a[i])

printf("input = :\r\n")

for (int i = 0i <cnti++)

printf("%d ", a[i])

printf("\r\n")

}

如果我也不知道有几个数,但我想停的时候,他就得停,此时你就得和程序商量好,我输入0的时候,你就停,其它的你就录入

#include <stdio.h>

int main()

{

int a[10]

int cnt = 0

while (1)

{

scanf("%d", &a[cnt])

if (a[cnt] == 0)

{

break

}

cnt++

}

printf("input = :\r\n")

for (int i = 0i <cnti++)

printf("%d ", a[i])

printf("\r\n")

}

不论是第一种方法,还是第二种方法,你定义的数组都必须大于你输入的数据数

“啊,我不知道他可能输几个”

对于这种情况,你可以提前告诉他,你最多输入几个,然后再做个限制,比如说你判断当前数量,如果大于10000000,直接break,从循环里退出,然后处理事务

答题不易如无疑问烦请采纳

首先,要明确您的输入在何种情况下表示终止,是空格,还是回车?。。就像字符串,用scanf()就是遇到空格后,将空格前的字符串读入,用gets()就是遇到回车后把整行读入。。如果说您的输入是在回车后终止的,有个简单的办法,就是在每读取一个数字后,判断一下用户是敲空格还是回车。。程序代码如下:#include<stdio.h>intmain(void){ inta[100] inti scanf("%d",&a[0]) i=1 while((int)getchar()!=10) {scanf("%d",&a[i])i++ } printf("一共%d个数\n",i) system("pause") return(0)}运行结果如下:但是这个程序有很多问题,比如用户在输入空格后,再敲回车,就退出不了了。。其实通常情况是这么做的,就是自己设定个结束标志,比如当用户输入-1的时候,终止输入。。如果情况更复杂的话,估计就只能以字符串形式输入,然后再一个字符一个字符的判断了。。

#include<iostream>

using namespace std

int main(){

int [] arr=new int[10]

int max=0,min=0,sum=0,average=0

int a3=0,a5=0,a7=0

int i,j,k

for(int i=0i<10i++)

{

cin>>arr[i]

}

max=arr[0]

min=arr[0]

for(int j=0j<10j++)

{

if(arr[j]>max)

max=arr[j]

if(arr[j]<min)

min=arr[j]

sum=sum+arr[j]

if(arr[j]%3==0) a3++

if(arr[j]%5==0) a5++

if(arr[j]%7==0) a7++

}

for(int k=0k<10k++)

{

cout<<arr[k]<<" "

}

cout<<endl

cout<<"max:"<<max<<endl

cout<<"min:"<<min<<endl

cout<<"average:"<<sum/10.0<<endl

cout<<"a3:"<<a3<<endl

cout<<"a5:"<<a5<<endl

cout<<"a7:"<<a7<<endl

return 0

}