簡體   English   中英

讀取 n 個數字的列表並在 C 中創建一個數組

[英]Read a list of n numbers and make an array in C

所以我想接受這樣的輸入:

第一個輸入告訴我們數組的大小,第二行包含數組的數量,如下所示:

輸入:

3
1 2 3

我想從第二個輸入行創建一個數組,其大小為第一個輸入行。

我目前有:

#include <stdio.h>
#include <stdlib.h>
#include <math.h>
int main() {
        int n;
        scanf("%d", n);
        int x[n];
        int y[n];

}

但之后我被難住了

如果您有支持編譯器(例如 GCC)的 VLA(可變長度數組):

int n;
scanf("%d", &n);
int arr[n];
scanf("%d %d %d", &arr[0], &arr[1], &arr[2]);

如果不,

int n;
scanf("%d", &n);
int *arr = malloc(n * sizeof(int));
scanf("%d %d %d", &arr[0], &arr[1], &arr[2]);

此代碼使用scanf的功能來獲取多個分隔輸入。

很明顯,VLA 功能允許您在堆棧上創建一個具有運行時值的數組。 否則,您需要使用malloc()在堆上分配它。

如果要掃描的數字超過 3 個怎么辦。 我是否需要添加更多“%d”和 arr[] 或者是否有某種方法可以處理第二行中的任意數量的數字。

要解決這一點,您可以使用 go 迭代循環

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

暫無
暫無

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

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