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,這個語句已經不建議使用了,樓上的正解 printf t f n w h h 你程式中根本就沒有對變數t賦值,這句t f放在printf中,只是當作表面上的字串顯示而已。並不會對t賦值。scanf f f h,w t w h h printf t f n t include include int main 沒有給t值賦值,在printf... 選ab中取模右邊不是整數 c中賦值號左側不是一個變數 d中第二個賦值號左側不是一個變數 c語言中通過 運算子來實現賦值,有時候也用它來進行初始化,在c語言中初始化和賦值是完全兩個不同的概念。比如下面的 int a 10 這是初始化a 0 10 這是賦值 初始化是一個順序點,編譯器保證每一個順序點都執... 兄弟,應該上面的程式無數次,下面的一次吧 原理如下 while是判斷括號內部執行的語句的真假 1,k 2是一個賦值表示式,永遠為真,所以執行了無數次 2,k 2是一個判斷式,由於k只有在第一次的時候是2,執行後會 所以只執行一次 兄弟,祝你成功 第一個程式段語句錯了啊 while k 2 裡面的k ...C語言程式設計if語句,用C語言程式設計中if語句的格式是什麼?
C語言賦值語句,C語言中賦值語句有什麼規則要求?
c語言WHILE語句