如何在 C 中讀取 N 個(不確定)數字,這些數字由同一行上的空格分隔

發布 職場 2024-05-20
10個回答
  1. 匿名使用者2024-02-11

    void f(int n,int **p)if (n<=0)

    return;

    int *a=(int*)malloc(n*sizeof(int));

    for(int i=0;i

    #include

    void f(int n,int **p)if (n<=0)

    return;

    int *a=(int*)malloc(n*sizeof(int));

    for(int i=0;iscanf("%d",&a[i]);

    p=a;int main()

    int n =4;

    int *parr=0;

    f(n,&parr);

    for(int i=0;iprintf("%d",parr[i]);

    system("pause");

    return 0;

    注意:在 main 函式中,n 是乙個變數,例如,如果您編寫 scanf("%d",&n);然後將其代入函式 f(n,&parr); 它也可以通過,主要是因為它通過使用動態分配記憶體的方法使這種方法變得可行。

  2. 匿名使用者2024-02-10

    樓上已經明確表示,如果不需要呼叫函式的形式,只需使用for迴圈即可,如下所示;

    #include

    #define n 5

    main()

    int a[n];

    int i;

    for(i=0;iscanf("%d",&a[i]);

    for(i=0;iprintf("%d",a[i]);

  3. 匿名使用者2024-02-09

    舉幾個例子,大家可以理解這個函式,因為這兩個字元一般是用來控制輸入的,所以只討論空格回車的情況。

    1.如果輸入資料為非 char 型別:

    int a, b;

    scanf("%d%d",&a,&b);

    在這種情況下,輸入法可以是 1 空格 2

    或 1 個空間空間。 2

    或 1 輸入 2

    或 1 輛車還車。 2

    此時,可以得出結論,scanf 不僅接收忽略空格,還接收回車符。

    int a, b;

    scanf("%d,%d",&a,&b);

    在這種情況下,輸入法可以是 1 空格 2

    或 1 個空間空間。 2

    或 1 輸入 2

    或 1 輛車還車。 2(只需確保 1 後跟逗號,並且任何奇怪的輸入都是正確的)。

    在這一點上,可以得出結論,scanf 接收不僅忽略了空格,還忽略了回車符,但在逗號的情況下,它必須遵循一定的格式,否則會發生錯誤。

    2.讓我們看一下輸入資料為 char 型別的情況:

    char a, b;

    scanf("%c%c",&a,&b);或者 scanf("%c,%c",&a,&b);

    此時,只能對輸入進行格式化,不會忽略任何字元。

    就這些了,也許你多想想,我沒提過,有什麼問題可以提出來,一起討論。

  4. 匿名使用者2024-02-08

    複製貼上一大堆廢話,scanf("%c", &c),空格被接受,空格在其他時間被忽略。

  5. 匿名使用者2024-02-07

    當 scanf() 函式接收到輸入資料時,它會在以下情況下結束資料的輸入:(scanf 函式不是結束 scanf 函式,而是僅在每個資料字段中有資料並按 Enter 鍵時才結束)。

    遇到空格時,按“Enter”、“Skip Grid”鍵。

    寬度的末尾。

    在非法進口的情況下。

  6. 匿名使用者2024-02-06

    scanf 的輸入法完全取決於 ** 的書寫方法。

    我們先來談談scanf的輸入原理:

    1. scanf 輸入流的概念,當執行到 scanf 函式時,會檢查輸入流,如果為空,會要求使用者輸入。 如果它不為空,則根據 scanf 的格式引數從輸入流中讀取它。

    2. %d 用於輸入整數型別,會跳過空白字元的開頭(空格製表符輸入算作空白字元),掃瞄直到第乙個數字開始,然後開始向後掃瞄,遇到空白字元或非數字時停止,然後將前乙個數字分配給相應的變數。 如果第乙個不是數字,則 scanf 將返回失敗。

    如果是 %3d %2d,則將掃瞄字元的最大寬度。 如果不掃瞄寬度,如果它接觸到空白字元或非數字,它就會停止。

    3. %c 用於輸入字元,不會跳過第乙個空白字元。 從輸入流的第乙個字元開始。

    如果有寬度修改,例如 %3c,則將掃瞄字元的寬度,但僅將第乙個字元分配給相應的變數。

    4. %s 用於輸入乙個字串,它會跳過空格字元的開頭(空格選項卡輸入算作空格字元),然後從第乙個非空格字元開始,然後開始向後掃瞄,碰到空格字元時停止,然後將上乙個字串分配給相應的變數。 %s 無法接受傳入空格,因為它在遇到空格時停止。

    5. %f 用於輸入單精度浮點數型別,即浮點型,其他與 %d 相同

    6. %lf 用於輸入雙精度浮點數型別,即雙精度型別,其他與 %d 相同

    對於你上面的問題。

    scanf(%3d%2d%3c,&a&b&ch)

    輸入 123 個空格和 46 個空格 abc

    輸出為 a=123,b=46,c=空格。

  7. 匿名使用者2024-02-05

    格式控制項 %3c 應該是指向字元陣列的指標,以及字元變數的位址,結果是不可預測的——如果我不在乎修改 ch 旁邊的記憶體區域的後果,我就不說了。

    以下**。 #include

    int main()

    輸入 123 46 abc

    輸出 a=123 b=46 c=' ab'

    由此可見,老師顯然錯了。

  8. 匿名使用者2024-02-04

    當有寬度修改時,資料不需要分割,否則就會被分割。

  9. 匿名使用者2024-02-03

    寬度修改是對輸出資料寬度的限制,與輸入資料無關,必須對輸入資料進行分割。

  10. 匿名使用者2024-02-02

    %3d 表示乙個整數,它佔據了 3 個空格的位置,並且小於左邊的乙個空格。

相關回答
9個回答2024-05-20

我覺得它有效,我剛開始工作時做過一次,我記不太清楚了,但是你可以用 seek 函式嘗試一下,先找到它,然後再看它,我記得當我這樣做時,我讀了這本書 C 程式設計師,大約有 234 頁。

3個回答2024-05-20

它以位元組的形式讀出並轉換為數字。

#include >>>More

20個回答2024-05-20

下拉框包含多個專案,以及可以讀取下拉框中其中乙個專案的文字(n 表示索引)。 >>>More

11個回答2024-05-20

這是文字框,對吧? textbook?

double somedouble; >>>More

16個回答2024-05-20

寫入滑鼠懸停事件和滑鼠輸出事件,當有焦點時清除文字框中的單詞。