2015-04-03 66 views
-1

目前,我要求用戶指定輸入值的數量。 This code for it:如何分配未知長度數組中的間隔輸入數字

#include<stdio.h> 
#include<math.h> 
#include<string.h> 
void main() 
{ 
    int i,n; 
    printf("\nHow many record you will enter: "); 
    scanf("%d",&n); 
    float x[n]; 
    printf("\n\nEnter the values of velocity (m/s):"); 
    for(i=0; i<n; i++) 
    { 
     scanf("%f",&x[i]); 
     printf("\n%f",x[i]); 
    } 
} 

該代碼運行良好。但是,我想以這樣的方式編寫代碼,即通過掃描輸入(數字以空格分隔,每個數字之間不需要一個空格)來計算'n',而不詢問用戶。 你可以爲我推薦一個方法嗎?

PS:我是新來提前

+0

建議:寧願'int main(void)'在'void main()'之上。 – 2015-04-03 11:54:28

+0

爲什麼在要打印的文本之前打印換行符?我在初學者中見過越來越多,這對我來說並沒有什麼意義。主要是因爲輸出到'stdout'(這是'printf'寫入的內容)默認是*行緩衝*,這意味着輸出在新行上被刷新(即實際打印)。所以如果你在開頭打印兩行換行符,那麼最初只顯示第一行。 – 2015-04-03 11:55:51

+0

我可以使用字符串做你想要的,但輸入爲int?可能嗎?我認爲,不是...... :( – Mukit09 2015-04-03 11:57:02

回答

0

編碼

謝謝您可以看一下fgets()strtok()。把它們結合起來,你可以根據你的目標進行設計。此外,您可能需要知道並使用malloc()free()以利用動態內存分配。

也許this answer可以幫到你。

+0

我想使用scanf函數來查找輸入的結尾,如下所示:的#include 的#include 的#include 無效的主要() { \t INT I,N; \t float x [10]; (「\ n \ n輸入速度值(m/s):」); \t而(scanf函數( 「%F」,&X [1])== 1) \t { \t \t的scanf( 「%F」,&x[i]); \t \t我++; \t \t的n ++; \t} \t爲(I = 0; i>名詞;我++) \t { \t \t的printf( 「\ n%F」 中,x [1]); \t}!\t } while循環未結束 – 2015-04-03 14:13:19

+0

只見噸帽子已經並沒有得到它。我理解了所有解釋的步驟,並研究了那裏提到的所有功能。但我不確定如何使用它來解決我的問題。 – 2015-04-03 14:25:49

相關問題