0
A
回答
0
您需要在之前聲明數組大小(推薦使用#define
),這意味着您需要知道之前的輸入大小。
#define LEN 5
void main()
{
int arr[LEN];
for (i =0; i < LEN; i++)
scanf("%d", &arr[i]);
}
如果您想要動態地連接數組,您必須使用指針(使用malloc和realloc)。
void main()
{
int* arr = (int*) malloc(0);
int size = 0;
int val;
for (size = 0; scanf("%d", &val) != EOF; size++)
{
arr = (int*) realloc(arr, size + 1);
arr[size] = val;
}
free(arr);
}
5
你可以閱讀它,你在讀五個整數一個接一個:
for (i = 0; i < 5; i++)
scanf("%d", &array[i]);
這樣你就可以輸入3 4 5 6 7
正常。
1
以上所有內容均爲有效答案,如果您不知道有多少元素,也可以使用動態分配的數組。有很多不同的版本,如1,每個新的元素增加數組大小或在開始輸入查詢的大小...
#include<stdio.h>
#include<stdlib.h>
int main(){
int *ar, i, j, h;
scanf("%d", &i); // Input the size of an array
ar = (int*)malloc(sizeof(int)*i); // allocate the memory for your array
for(j = 0; j < i; j++){
scanf("%d", &h);
*(ar+j) = h;
}
for(j = 0; j < i; j++) printf("%d\n", ar[j]);
free(ar);
return 0;
}
而且在這兒,你通過1,每個新的元素來增加大小是一個例子使用realloc();
。對於這個例子,可以說你輸入數字,直到你輸入-1。
#include<stdio.h>
#include<stdlib.h>
int main(){
int *ar, i, s = 1;
ar = (int*)malloc(sizeof(int));
do{
scanf("%d", &i);
if(i == -1) break;
ar[s-1] = i;
realloc(ar, ++s);
}while(1);
for(i = 0; i < s - 1; i++) printf("%d\n", ar[i]);
free(ar);
return 0;
}
與動態分配數組非常重要的事情是,你需要釋放使用free();
退出程序前的記憶。
相關問題
- 1. 掃描數值C#
- 2. 掃描到數組中的問題C
- 3. 如何掃描整數?
- 4. 如何掃描已掃描的行中的整數scan.nextLine()
- 5. 掃描字符串數組
- 6. 從中心掃描數組
- 7. 掃描到一個數組
- 8. 掃描一個有效的整數
- 9. 從數組中掃描數字
- 10. 數字掃描
- 11. 如何掃描一行n個整數?
- 12. 如何逐行掃描輸入整數?
- 13. 掃描儀和nextInt捨棄整數
- 14. 從文件行掃描直到C中的整數
- 15. sscanf不移動,每次掃描相同的整數! C
- 16. 掃描對象的數組,NoSuchElementException異常
- 17. C - 掃描矩陣數組並將其發送給函數?
- 18. 掃描目標中的數字 - C
- 19. 掃描用C
- 20. C#類掃描
- 21. 組件掃描不掃描子包
- 22. 將字符掃描到C中的數組中
- 23. C:掃描的雙數組值改變了原因?
- 24. 文件掃描C中的二維數組
- 25. 使用JavaScript掃描PHP數組
- 26. PHP掃描目錄和數組
- 27. 在x86程序集中掃描數組
- 28. 文件掃描程序數組
- 29. 掃描n個數沒有用C
- 30. 掃描成數字串在C
您是否嘗試搜索'如何在C中輸入數組中的值? –