我知道它很簡單,但我無法弄清楚為什么一旦用戶輸入大小和整數,我的陣列就不會列印。我終于能夠讓用戶確定陣列的大小并輸入他們自己的整數,但現在程式立即回傳。
#include <stdio.h>
#include <string.h>
#include <stdlib.h>
int main()
{
//Declare a size variable
int size = 0;
//Ask user how many numbers are in list:
printf("How many integers?");
scanf("%d", &size);
printf("Please enter integers:");
int arr[size];
scanf("%d", arr);
//Calculate length of array
int length = sizeof(arr)/sizeof(arr[0]);
//Test print to see if array is returning the right amount of integers.
//printf("%d", length);
//Print original array
for(int i = 0; i > length; i )
{
printf("%d", arr[i]);
}
printf("\n");
return 0;
}
uj5u.com熱心網友回復:
scanf("%d", arr);
因為arrnow 是指向 的指標arr[0],所以scanf("%d", arr);只會輸入陣列的第一個元素。
你必須把它放在一個for回圈中:
for(int i = 0; i < size; i)
{
scanf("%d", &arr[i]);
}
這個for回圈:
for(int i = 0; i > length; i )
{
printf("%d", arr[i]);
}
永遠不會執行,因為length總是大于0,所以當i = 0,i > length是false。
你應該使用:
for(int i = 0; i < length; i )
{
printf("%d", arr[i]);
}
另外,lengthis just size,所以你不需要length
所以你的代碼應該是:
#include <stdio.h>
#include <string.h>
#include <stdlib.h>
int main()
{
int size = 0;
printf("How many integers?");
scanf("%d", &size);
printf("Please enter integers:");
int arr[size];
for(int i = 0; i < size; i)
{
scanf("%d", &arr[i]);
}
for(int i = 0; i < size; i )
{
printf("%d", arr[i]);
}
printf("\n");
return 0;
}
轉載請註明出處,本文鏈接:https://www.uj5u.com/qianduan/396689.html
上一篇:根據靠近運輸機的代理設定速度
