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,這個語句已經不建議使用了,樓上的正解 for中三個語句都是可以省略了 例如for 這樣的寫法也是正確的。你的上面是雙重迴圈,如果第二個賦初值提出來放在 第一個for迴圈上面 和 放在第二個for中賦初值是不相同的。關鍵看你想要的是什麼?1 for迴圈中的 表 達式1 迴圈變數賦初值 表示式2 迴圈條件 和 表示式3 迴圈變數增量 都是選... for 限定了迴圈次數 while 是條件迴圈,如果while內部條件滿足可以永遠循專 環下去do while也是條件迴圈,只不過條屬件在迴圈之後,每次迴圈之後才判斷條件 為了良好的變成風格 個人建議你儘量使用for迴圈就這樣吧 如果是迴圈一定次數的,for和while都差不多。如果是說要滿足某個條... include int main int argc,char argv else endforloop printf 已經退出外層迴圈 return 0 比如 for i 0 i 10 i if i 5 break 外部迴圈的條件是i 10,內部判斷i是否等於5,如果等於執行break,結束迴圈,否...c語言for語句C語言for語句
c語言中for語句和while語句的區別,詳細解釋下,遇到循
c語言for迴圈巢狀if語句,c語言for迴圈巢狀if語句