首先你得让程序知道,什么时候该结束,例如我想就输入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
}