包括 stdio h main int a 8 , p printf 為 p a p a 8 p 掃瞄 d ,p 輸入 8 位數字

發布 科技 2024-04-02
12個回答
  1. 匿名使用者2024-01-27

    White Mouseybz,我對這個問題有乙個疑問:為什麼 scanf 在這裡要求 9 個條目? 不應該是8次嗎?

    #include

    int main()

    int a[8], p;

    printf("輸入 8 個數字:");

    for (p=a; pfor (p=a; preturn 0;

    在我修改後的程式中,迴圈次數相同,但是 printf 列印了 8 個數字,而 scanf 必須輸入 9 次,這是什麼原因?

    我明白了原因 - 問題不在於迴圈次數,而是 - scanf("%d ", p);這裡有乙個空間! Scanf 跳過空格來讀取下乙個字元,因此您必須輸入另乙個數字。 此處的空格包括:

    空格、製表符、換行符、回車符和分頁符。 只需刪除空格即可。

  2. 匿名使用者2024-01-26

    找到另乙個原因,你的程式沒有錯!

    有一點需要注意,你說的是輸入8個數字,但是p關於輸入9個數字的問題,雙為什麼是對的,他的意見!

  3. 匿名使用者2024-01-25

    您給出的 C 程式有錯誤,*p='\0';p 應為小寫,並應更改為 *p='\0';

    更正程式的結果是 C51

    完整的程式和執行過程分析如下。

    #include

    void main()

    int a=28,b;

    char s[10],*p;

    p=s;do

    b=a%16;

    if(b<10) *p=b+48;

    else *p=b+55;

    p++;a=a/5;

    while(a>0);

    p='\0';

    puts(s);

    <>程序解析。

    因為 a==28,p=s,p 指向 s[0],進入 while 迴圈,b=28%16=12,b>10,*p=12+55=67,所以 s[0]==c'(ASCII 程式碼 67),p++,p 指向 s[1],a=a 5=5

    a==5,a>0,繼續while迴圈,b=5%16=5,b<10,*p=5+48=53,所以s[1]==5'(ASCII 程式碼 53),p++,p 指向 s[2],a=5 5=1

    a==1,a>0,繼續while迴圈,b=1%16=1,b<10,*p=1+48=49,所以s[2]==1'(ASCII 程式碼 49),p++,p 指向 s[3],a=1 5=0

    a==0,退出 while 迴圈,*p='\0',所以 s[3]==0'(string terminator),輸出字元陣列 s,所以結果是 c51

  4. 匿名使用者2024-01-24

    **為:int main()

    最初,m=9,進入for迴圈,確定m>0,然後執行迴圈語句。

    如果 9%3==0 為 true,則執行 printf 語句,首先 --m 得到 8,然後將 m 的值列印為

    m--進入下乙個迴圈到7,確定m>0,執行迴圈語句。

    如果 judgment, 7%3=1≠0, m--輸入下乙個迴圈為 6,判斷 m>0,執行迴圈語句。

    如果 6%3==0 為 true,則執行 printf 語句,首先 --m 得到 5,然後將 m 的值列印為

    m--輸入下乙個迴圈為4,確定m>0,執行迴圈語句。

    如果 judgment, 4%3=1≠0, m--進入下乙個迴圈為 3,判斷 m>0,執行迴圈語句。

    如果 3%3==0 為 true,則執行 printf 語句,首先 --m 得到 2,然後將 m 的值列印為

    m--輸入下乙個迴圈為1,確定m>0,執行迴圈語句。

    如果判斷,1%3=1≠0,m--進入下乙個迴圈為0,判斷m>0不成立,跳出迴圈,程式結束。

    所以最終的輸出是:852

    請注意,首先執行 --m--,然後返回 m 的值; m--首先返回 m 的值,然後執行 --; 看

  5. 匿名使用者2024-01-23

    總結。 你好親愛的,如果 n = 0,則返回第乙個元素的陣列 x,例如。

    你好親愛的,如果 n = 0,則返回第乙個元素的陣列 x,例如。

    問題 3. 答案是

    你好,是的。

    為什麼。 為什麼錯了。

    你好,因為 c 沒有 ()。

  6. 匿名使用者2024-01-22

    ASCII 程式碼按順序列出。

    例如,小寫字母順序:a、b、c、d、e、f、g,..x、y、z,相鄰字母之差為1,從a遞增至z

    例如,大寫的順序回答:a、b、c、d,..x、y、z,相鄰字母之間的差值為 1,從 a 到 z 遞增

    你不需要記住他們的程式碼是什麼,你只需要知道順序。

    int x='f';

    x-'a'就是這樣'f' - 'a' 。按 A、B、C、D、E、F、ASCII 碼差 5 的順序,'f' - 'a'等於 5。

    x-'a'+1 等於 6。

    a'+ 6 到 a、b、c、d、e、f、g、h、i、j,第 6 個字母的右邊是 g。

    A、G

  7. 匿名使用者2024-01-21

    你好! 非常樂意為您解答。

    源輸出為 a, g:

    #include

    main()

  8. 匿名使用者2024-01-20

    執行 m=a>b,如果條件為 false,則 m=0;&&& 前面是 0,n=c>d 不執行,所以 n=2

  9. 匿名使用者2024-01-19

    你的程式相當於下面的程式,我稍微改了一下,看得更清楚:

    #include

    #include

    void fun (char*w,int m)}main()

    按照你的意圖,我會把我評論的兩個陳述移到迴圈的末尾。 即:

    雖然 (p1 是在你原來的基礎上改變的,但這就是它被改變成這樣的:

    而(P1 樓層主參考。

    祝你好運!

  10. 匿名使用者2024-01-18

    第一:看程式執行:

    初始值為 a=1,b=2

    1<8 所以 b=b+a=2+1=3

    a=a+2=1+2=3

    然後在 for 語句中執行 a++, a=4

    4<8 所以 b=b+a=3+4=7

    a=a+2=4+2=6

    然後在 for 語句中執行 a++, a=7

    7<8 所以 b=b+a=7+7=14

    a=a+2=7+2=9

    然後在 for 語句中執行 a++,a=10

    如果 10 不小於 8,則執行 for 語句。 結果 10,14Second:在 for 語句中將 a++ 更改為 ++a,與上面的輸出相同。 因為 A++ 和 ++A 是在

    是一樣的,不影響後續的判斷和結果輸出。

    第三:以我的拙見,你認為輸出結果是9,14是因為你不理解clear for語句的執行嗎? 而不是誤會。

    A++ 與 ++A。

  11. 匿名使用者2024-01-17

    我認為改為 ++a 後,b 的值發生了變化,a 仍然保持不變。

  12. 匿名使用者2024-01-16

    稍微了解一下:先用a++,再加; +a 使用前新增。

相關回答