c語言,為什麼結果是13c語言,為什麼結果是

2021-03-07 01:31:24 字數 1355 閱讀 8201

1樓:楊兵

答案我執行過了,是 1 3 4 5,現在我來解釋一下,希望我的解釋你能夠理解:

首先int a[5]=;

(1)注意到c/c++語言規定是a[0]=1,a[1]=4,a[2]=5;

而不是a[1]=1,a[2]=4,a[3]=5;

(2)經過

while (i<=n&&k>=a[i])

i++;

由於a[i]即a[1]=4,而k=3不大於a[1],不滿足迴圈條件,不執行i++語句

故經過while之後,i 不變,仍未1;

(3)for (j=n-1;j>=i;j--)

a [j+1]=a[j];

當j =n-1即j=2時,將(a[j]即a[2])的值5賦值給(a[j+1]即a[3]),此時a[5]=;

當 j=1時,將(a[j]即a[1])的值4賦值給(a[j+1]即a[2]),此時a[5]=;

(4)a[i]=k;

即將k的值3賦值給a[i]即a[1],得a[1]=3,此時a[5]=

(5)for (i=0;i<=n;i++)

printf ("%3d",a[i]);

輸出a[5]所有的值,即1,3,4,5

2樓:劉_永友

你嘗試著一步一步的 自己試著 想象 執行過程

i n j k a[0] a[1] a[2] a[3] a[4]

1 3 null 3 1 4 5 0 0

while語句進入 由於 k>=a[1] 不成立 所以 跳出

for語句 初始化 j = 2

第一次 1 3 1 3 1 4 5 5 0

第二次 1 3 0 3 1 4 4 5 0

由於 0<1 跳出

下一語句 a[i]=k; 執行 即使 a[1] = 3;

執行 列印語句 到 a[3] 所以就是 1 3 4 5了 你要注意 格式 我估計你這個是 把迴圈的格式

弄錯了 造成了邏輯 錯誤 …… 按照題目要求 慢慢改吧 迴圈體 建議 加一個 括號……

3樓:匿名使用者

a[0]=1,a[1]=4,a[2]=5;

while (i<=n&&k>=a[i])後i 不變,仍未1;

c語言小問題,為什麼結果是 1,謝謝

ffff是的2進位制數是1111 1111 1111 1111它的反碼為1000 0000 0000 0000 符號位不變補碼就是1000 0000 0000 0001一共16個1 佔4個位元組 x為char型 資料溢位 只能儲存8個二進位制數 符號位和後面7位 就是1000 0001 符號位為1 ...

C語言 float 5 2結果是多少

c語言 float 5 2結果是2 0000000。常量5和2是int型,int型變數除以int還是int,所以5 2結果是2。最後一個等號 把2強強制轉換成float資料型別。賦給a,float資料型別在機內用指數型式表示,尾數表示浮點數有效數字,0 x。因此,float 5 2 2 000000...

C語言初級有以下程式段輸出結果是

for i 1 i 15 j 4 一定是給錯了,應該是for i 1 i 15 i 4 取4個值1,5,9,13 for j 3 j 19 j 4 m 會執行5次m 也就是m 5,j分別取3,7,11,15,19 兩個迴圈是巢狀關係,合計執行為4 5 20。外層迴圈應該是 for i 1 i 15 ...