[英]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.