|
马上注册,结交更多好友,享用更多功能^_^
您需要 登录 才可以下载或查看,没有账号?立即注册
x
#include<iostream>
using namespace std;
int main()
{
int arr[]={4,2,8,9,3,5,7};
int i;
cout<<"排序前"<<"";
for(int i=0;i<=6;i++)
{
cout<<arr[i]<<endl;
}
for(int k=0;k<7-1;k++)
{
for(int j=0;j<7-1-k;j++)
{
if(arr[j]>arr[j+1]);
{
int temp=arr[j];
arr[j]=arr[j+1];
}
}
}
cout<<"排序后"<<"";
for(int i=0;i<=6;i++)
{
cout<<arr[i]<<endl;
}
return 0;
}
你的冒泡排序代码中存在一个小错误,这是在内部的if语句中。你在if语句后面加了一个分号,这实际上使得if语句结束,而后面的代码块总是会执行,不论if条件是否满足。这就导致了你的排序算法没有按照预期工作。
下面是修正后的代码:
- #include<iostream>
- using namespace std;
- int main()
- {
- int arr[]={4,2,8,9,3,5,7};
- int i;
- cout<<"排序前"<<"";
- for(int i=0;i<=6;i++)
- {
- cout<<arr[ i]<<endl;
- }
- for(int k=0;k<7-1;k++)
- {
- for(int j=0;j<7-1-k;j++)
- {
- if(arr[j]>arr[j+1]) // 删除了这里的分号
- {
- int temp=arr[j];
- arr[j]=arr[j+1];
- arr[j+1]=temp; // 添加了这一行,将临时变量的值赋给arr[j+1]
-
- }
- }
- }
- cout<<"排序后"<<"";
- for(int i=0;i<=6;i++)
- {
- cout<<arr[ i]<<endl;
- }
-
-
-
-
- return 0;
- }
复制代码
这个修正后的代码将正确地执行冒泡排序。
请注意,本回答来自GPT-4
如果问题已经解决,请设置最佳答案
|
|