1樓:匿名使用者
你的for迴圈只有一層迴圈,是無法排序的,for迴圈中if沒有跳出語句,所以不算控制for迴圈
下面修改了一下:
#include
#define size 10
int main(void)
int hold;
int a[size];
int i;
int j;
int k;
printf("please input ten numbers:\n");
for(i=0;iscanf("%d",&a[i]);
for(int i = 0; i < size - 1; i++)for(j=0;jif (a[j+1]>a[j])hold=a[j];
a[j]=a[j+1];
a[j+1]=hold;
for(k=0;kprintf("%d ",a[k]);
puts("");測試:
2樓:匿名使用者
如果輸入的是1 2 3 4 5 6 7 8 9 10的話,輸出的結果應該是2 3 4 5 6 7 8 9 10 1
如果你想從大到小排序的話,通過這種簡單的兩兩比較大小,至少要用兩個for迴圈
#include
#include//包含這個標頭檔案可以呼叫system("pause");
#define size 10
int main(void)
}for(k=0;k printf("%d ",a[k]); system("pause"); }這樣程式的輸出結果就應該是10 9 8 7 6 5 4 3 2 1了 3樓: //-------------------int hold; int a[size]; int i,j,k; printf("please input ten numbers:\n"); for(i=0;ia[i+1]) }}for(k=0;k //----------- c語言for語句中內嵌if 語句的問題 4樓:匿名使用者 為滿足要求,可修改**如下: #include void main() else}} }在vc6下驗證通過,與題目**效果一致,如下圖: 供參考。 5樓: d任意表示式 請採納。。。。 c語言:break語句和if語句在for迴圈中的使用問題? 6樓:汗耕順閔凰 是的,break只跳出迴圈2,判斷條件還執行。你這個程式本來就不對。 你可以在break之前加個標誌,比如定義一個boolbflag; 在數位分解之前bflag =false; 在break之前bflag =true; 在判斷條件之前再加個if (!bflag &&a1+a4==a2+a3) 7樓:衷玉芬達燕 不會執行,原因是兩層for迴圈,break跳出了裡層的迴圈,這時候會跳轉到第一個迴圈那邊。 第二個if判斷語句屬於第一個迴圈,而不是第二個迴圈,第二個迴圈只包括一個if語句和break。 8樓:戰玉蘭菅羅 例中break語句應該只是跳出了for迴圈2,break語句執行後下面的if判斷條件語句是否繼續執行 繼續執行 遇到c語言問題,輸入一個數,for迴圈內if語句,條件不符合重新輸入。 9樓:匿名使用者 break本來就是跳出迴圈用的,換成break自然沒問題。當你輸入小於100時,你讓i= 0,但是你忘記了還要執行i++,所以,i依然會變成1。 10樓:匿名使用者 if裡面加continue結束本次迴圈,開始下一次 11樓:鍾晴董琪 你可以用while來實現迴圈輸入,沒必要用goto,這個語句已經不建議使用了,樓上的正解 沒明白你的意思,是指輸入一個數,求1到這個數的階乘的和嗎?include stdio.h void main printf ld s 如果是這個意思的話,那大概這樣沒問題,你試一下,看是不是你想要的。include define i 20 main printf en f n en include ... 因為你主程式的後半個大括號沒打,所以系統自動找到兩個for語句之後的那個大括號當程式結束,既然這樣,那兩個for語句之間的那個大括號自然因為沒有後半個而變成多餘的,也就出現了錯誤。另外,你的程式裡還有一些錯誤。修改後程式 main int i,j printf array a for i 0 i 1... d i 0 執行printf語句,表示式x 結果為10,x 9,y的結果為10,此時執行for中表示式y i,所以此時y 1,i 1 下一次迴圈判斷 x 8,滿足條件,進行下一次迴圈i 1 執行printf語句,表示式x 結果為9,x 8,y的結果為1,此時才會執行for中表示式y i,所以此時y ...c語言if語句,c語言if語句
C語言之FOR語句,C語言for語句問題?
C語言for語句