[英]C - scan user inputs into an array to be sorted
原諒我,我是C編程新秀。 我需要做的是從標准輸入中獲取值並將它們存儲在一個數組中,該數組稍后將在線上進行排序。
用戶輸入的方法是一次一行一個號碼(即輸入一個號碼,按回車鍵,輸入號碼,按回車鍵等)。 當用戶輸入數字時,他們按ENTER
而不提供數字。
我接受值並存儲它們的代碼如下。 您可能會立即看到問題,但我沒有看到它。
#include <stdio.h>
#define MAX 100
int main()
{
int n, i, array[MAX];
printf("Enter a list of integers\n");
for(i = 0; i <= MAX; ++i){
printf("> ");
if (scanf("%d", &n) == -1)
break;
else
scanf("%d", &n);
array[i] = n;
}
printf("The array is %d", *array);
return 0;
}
下圖是程序應該如何運行。 我已經有了排序代碼,它看起來效果很好。 非常感謝您的幫助。
你有它做你想要的,你只需要一些調整。 首先,輸入不返回-1,為了保持簡單,你需要輸入ctrl+d
來停止輸入。 在最后輸入之后,只需按ctrl+d
。 看一看:
#include <stdio.h>
#define MAX 100
int main()
{
int n, i, array[MAX];
printf("Enter a list of integers [ctrl+d] to end\n");
for(i = 0; i <= MAX; ++i){
printf("> ");
if (scanf("%d", &n) == -1)
break;
array[i] = n;
}
puts ("");
int z;
for (z = 0; z < i; z++)
printf("The array is %d\n", array[z]);
return 0;
}
輸出:
Enter a list of integers [ctrl+d] to end
> 1
> 2
> 3
> 4
> 5
>
The array is 1
The array is 2
The array is 3
The array is 4
The array is 5
這是在enter上退出的更新的先前答案。
#include <stdio.h>
#define MAX 100
int main()
{
int n, i, array[MAX];
char num[MAX];
int res;
printf("Enter a list of integers [ctrl+d] to end\n");
for(i = 0; i <= MAX; ++i){
printf("> ");
fgets(num, sizeof(num), stdin);
res = sscanf(num, "%d", &n);
if(res != 1)
break;
n = atoi(num);
array[i] = n;
}
puts ("");
int z;
for (z = 0; z < i; z++)
printf("The array is %d\n", array[z]);
return 0;
}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.