乙個簡單的 c 程式,為什麼結果不對

發布 科技 2024-02-08
16個回答
  1. 匿名使用者2024-02-05

    int main()

    int i,j,a[100];

    for(i=0;i<=99;i++) 陣列從 a[0] 到 a[99]a[i]=i;

    for(j=2;如果 jif(a[i]%j==0) 能被 1 以外的數字和本身整除,則它不是素數。

    break;回到前面的 for 迴圈,i 自遞增 1else if(j == i - 1) 是素數。

    coutvs2005 編譯後,其中的 a[100] 可以省略,只需將其替換為 i 即可。

    int main()

    int i,j;

    for(i=0;i<=99;i++)

    for(j=2;jif(i%j==0)

    break;

    else if(j == i - 1)

    cout

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

    我只是看了一眼,可能不準確(i=0; i<=100;i++)注定是錯誤的。

    我不想寫它,但我可以發表一些評論。

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

    第二個 for 語句應在下面附上 if 和 else

    k=int(sqrt(a[i]))

    for(j=2;j<=k;j++)

    if(a[i]%j==0)

    i++;else cout<

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

    還是行不通。 輸出均為 1

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

    根據A和B給出的資料,結合反應方程式,可以知道A和B的輸入量是相同的。 但由於B中的容器是可移動的,並且頂部有重物,因此容器B的外部壓力大於A的外部壓力。 由於壓力,為了平衡部分壓力,反應沿體積減小的方向進行,即平衡正向移動。

    因此,A中反應物的量大於B中反應物的量,因此C是正確的。

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

    問題 1:

    strcmp 沒有正確理解,strcmp 在比較程式結束時有兩種情況:

    1. 比較遭遇"\0";

    2.比較和遇到不同的角色。

    您的程式僅比較最後乙個字元。

    問題 2:if(*str1++>str2++)。

    else if(*str1+++ 從這個結構中可以看出,你的指標迴圈一次被新增兩次(if add once else if add again),這就是字串對齊問題的原因。

    注意:在最後的比較中,如果不是 true,則指標加 1,否則如果下乙個字元不為 true,則指標加 1,執行 else 語句,短字串已指向零並且不在迴圈中。 返回 0。

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

    對於單精度數字,當使用 %f 偽造器輸出時,只有前 7 位是有效位,小數點後 6 位,如果超過,則為錯誤,如果 0 小於 7 位,則用法為 10f,精確的小數位數為。10 ,精確的小數位是。 3.小數點不能丟失。

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

    1. 小數點023從何而來? 預設的小數點後 6 位不應該是 000 嗎?

    計算機中的浮點數一般都是不精確的數字,都是近似數,所以當輸出結束的時候,當小數點後很多位的時候,顯示和我們的理想數字差別不大,最好用雙倍代替。

    2. 顯然域寬度已經指定為 10,為什麼結果有 11 位域寬,是否需要滿足 6 位的十進位預設輸出?

    是的。 3.第二個printf()函式的輸出更離譜,只有三位數字很寬,為什麼值是全輸出的?

    當實際數字的寬度超過設定的字段寬度時,輸出基於實際數字的長度。

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

    十進位 023 從何而來?

    這是由於二進位十進位轉換引起的錯誤。 因此,像 x==y 這樣的條件不適合浮點數。

    在其他情況下,當指定的域寬度小於實際數值輸出精度時,系統會自動完成指定的域寬度,以避免輸出錯誤。

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

    發生此錯誤的原因是您的字元傳輸組未設定在最後乙個位置'\0'終結者,這會導致 printf 列印越界字串和亂碼字元。

    有兩種解決方案:

    方案 1:初始化所有字串陣列,如下所示:'\0'例如:

    char c[100] = , str[100] = ;

    解決方案 2:將字串追加到最後乙個位置'\0'終結者,前面是 printf 函式:

    str[j] = '\0';

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

    有兩個問題。 如果語句後面跟著乙個分號,並且需要在 str 字串的末尾新增乙個終止符'\0',否則輸出將出現亂碼。

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

    m = (3>2) &k=0); //k=5

    **行中的測試點是邏輯的,或者(&&&詳細分析如下:

    3 大於 2 嗎? 如果它大於,則結果為 true!,k 直接賦值給 0(即 false,定義 false 0),結果為:

    m = true &&false;

    在邏輯或運算中,邏輯或運算中涉及的雙方都必須為真!否則,結果為 false(即 0,定義 false 0)!

    則 m = 0; m 自然被賦值為 0,所以想象一下結果。

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

    分配k=5的值,然後根據k的值是否為0取真值或假值,相當於:

    k=5; m=(3>2) &k;

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

    是的,C 認為 0 是假的,非 0 是真的,你知道的。 然後賦值語句返回賦值物件的值,即 k=0 的值為 0,k=5 的值為 5,所以第乙個的結果為 m=0,第二個的結果是 m=1

    例如,實際上,您可以輸出 k=5 的值。

    printf("%d",k=5);

    結果值為 5,k。

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

    以上兩個是對的,k=0,或者k=5是賦值,不是比較,比較會有邏輯結果,賦值是與k的值進行比較,比如問題:結果是(3>2)&k,你看:m = (k=4); 你明白了。

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

    k=5,你是在比較還是分配價值?

相關回答
5個回答2024-02-08

腰帶漸漸變寬,不後悔,讓人為易憔悴。

劉勇的《蝴蝶愛花》。 >>>More

8個回答2024-02-08

馮倪楓說得很好,鼓掌。

7個回答2024-02-08

插曲的歌詞“你一生中只能愛乙個”。

歌手:胡楊林。 >>>More

23個回答2024-02-08

好吧,我認為無論問題是什麼。

大家最好坐下來談談。 >>>More

3個回答2024-02-08

1. 中毒 2.軟體太多。

3. 軟體衝突。 >>>More