用C语言输入数组

用C语言输入数组,c,file-io,C,File Io,基本上我有一个C程序,用户在其中输入一个数字(如4)。定义的是进入数组的整数数(最多10个)。但是,我希望用户能够将它们输入为“1 5 2 6”(例如)。即,作为以空格分隔的列表 到目前为止: #include<stdio.h>; int main() { int no, *noArray[10]; printf("Enter no. of variables for array"); scanf("%d", &no); print

基本上我有一个C程序,用户在其中输入一个数字(如4)。定义的是进入数组的整数数(最多10个)。但是,我希望用户能够将它们输入为“1 5 2 6”(例如)。即,作为以空格分隔的列表

到目前为止:

#include<stdio.h>;

int main()
{
    int no, *noArray[10];    
    printf("Enter no. of variables for array");
    scanf("%d", &no);

    printf("Enter the %d values of the array", no);
    //this is where I want the scanf to be generated automatically. eg:
    scanf("%d %d %d %d", noArray[0], noArray[1], noArray[2], noArray[3]);

    return 0; 
}
#包括;
int main()
{
国际编号*noArray[10];
printf(“为数组输入变量编号”);
scanf(“%d”和“否”);
printf(“输入数组的%d个值”,否);
//这就是我希望自动生成scanf的地方。例如:
scanf(“%d%d%d%d”,无阵列[0],无阵列[1],无阵列[2],无阵列[3]);
返回0;
}
不知道我该怎么做

谢谢

自动使用格式说明符/百分号之前的任何空格(除了%c,它一次使用一个字符,包括空格)。这意味着一条线,如:

scanf("%d", &no);
实际读取并忽略要读取的整数之前的所有空格。因此,您可以使用for循环轻松读取由空格分隔的任意数量的整数:

for(int i = 0; i < no; i++) {
  scanf("%d", &noArray[i]);
}
for(int i=0;i
注意,noArray应该是一个int数组,您需要将每个元素的地址传递给scanf,如上所述。另外,您的#include语句后面不应该有分号。如果不是错误,编译器应该给您一个警告。

\include
#include <stdio.h>

int main(int argc,char *argv[])
{
    int no,noArray[10];
    int i = 0;

    scanf("%d",&no);
    while(no > 10)
    {
        printf("The no must be smaller than 10,please input again\n");
        scanf("%d",&no);
    }
    for(i = 0;i < no;i++)
    {
        scanf("%d",&noArray[i]);
    }
    return 0;
}
int main(int argc,char*argv[]) { 国际编号,诺瑞[10]; int i=0; scanf(“%d”和“否”); 而(no>10) { printf(“编号必须小于10,请重新输入\n”); scanf(“%d”和“否”); } 对于(i=0;i

您可以这样尝试。

您知道为什么使用指针数组吗?您知道传递给sscanf()的地址没有指向任何东西,因此由于未定义的行为,几乎肯定会出现seg错误吗?尝试
int noArray[10]
并传递
noArray、noArray+1、noArray+2、…)
等。不要在
后面加分号。