我已经一次又一次检查代码中的任何问题,但无法弄清楚为什么我的气泡分拣程序没有给出正确的输出.你能帮我识别一下吗?
#include <iostream.h> #include <conio.h> using namespace std; main() { int number[10]; int temp=0; int i=0; cout<<"Please enter any ten numbers to sort one by one: "<<"\n"; for (i=0;i<10;i++) { cin>>number[i]; } i=0; for (i=0;i<10;i++) { if(number[i]>number[i+1]) { temp=number[i+1]; number[i+1]=number[i]; number[i]=temp; } } i=0; cout<<"The sorted numbers are given below:"<<"\n"; for (i=0;i<10;i++) { cout<<number[i]<<"\n"; } getch(); }
编辑:
我已经接受了你们所说的必须有一个外环.但我又在想我写的东西.我认为具有气泡条件的ONLY循环应该进行排序.这是我在想的:
for (i=0;i<10;i++) if(number[i]>number[i+1]) { temp=number[i+1]; number[i+1]=number[i]; number[i]=temp; } }
现在我解释一下我在想什么这个循环“应该”做什么.它首先将数字[0]与数字[1]进行比较.如果条件满足,它将执行IF语句的正文.然后我将增加1(i).然后在下一次迭代中,比较的值将是数字[1]和数字[2].那么为什么它不会发生并且循环仅在通过后退出?换句话说,可能是我试图要求IF语句不会在for循环中重复?在我看来它确实如此.我非常感谢你的帮助和观点,我的问题可能很小,但这就是我的进步方式.谢谢.