簡體   English   中英

在C中輸入數組

[英]Inputting array in C

基本上我有一個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; 
}

不知道我該怎么做?

謝謝

scanf自動消耗格式說明符/百分號之前的所有空白(%c除外,它一次消耗一個字符,包括空白)。 這意味着一行如下:

scanf("%d", &no);

實際讀取並忽略您要讀取的整數之前的所有空格。 因此,您可以使用for循環輕松讀取由空格分隔的任意整數:

for(int i = 0; i < no; i++) {
  scanf("%d", &noArray[i]);
}

請注意,如上所述,noArray應該是一個整數數組,您需要將每個元素的地址傳遞給scanf。 另外,您在#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;
}

您可以這樣嘗試。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM