#include <stdio.h>
#include <stdlib.h>
#include <string.h>
void bubble(int arr[],int arrLength) {
int i,j,t;
for(i=0;i<=arrLength-1;i++) {
for(j=0;j<=arrLength-1-i;j++) {
if (arr[i]>arr[i+1]) {
t=arr[i];
arr[i]=arr[i+1];
arr[i+1]=t;
}
}
}
}
int main() {
int arr[]= {3,2,1};
int arrLength=sizeof(arr)/sizeof(int);
int k;
bubble(arr,arrLength);
for(k=0; k<arrLength; k++) {
printf("%d",arr[k]);
}
return 0;
}
冒泡排序 为什么结果是这样。
- 写回答
- 好问题 0 提建议
- 追加酬金
- 关注问题
- 邀请回答
-
1条回答 默认 最新
- 树下等苹果 2022-05-01 17:46关注
主要是冒泡排序你写错了,修改如下:
#include <stdio.h> #include <stdlib.h> #include <string.h> void bubble(int arr[], int arrLength) { int i, j, t; for (i = 0; i < arrLength - 1; i++) { //小于,而不是小于等于 for (j = 0; j < arrLength - 1 - i; j++) { //小于,而不是小于等于 if (arr[j] > arr[j + 1]) { //使用j,而不是i t = arr[j]; arr[j] = arr[j + 1]; arr[j + 1] = t; } } } } int main() { int arr[] = { 3,2,1 }; int arrLength = sizeof(arr) / sizeof(int); int k; bubble(arr, arrLength); for (k = 0; k < arrLength; k++) { printf("%d", arr[k]); } return 0; }
本回答被题主选为最佳回答 , 对您是否有帮助呢?解决 无用评论 打赏 举报
悬赏问题
- ¥15 求螺旋焊缝的图像处理
- ¥15 blast算法(相关搜索:数据库)
- ¥15 请问有人会紧聚焦相关的matlab知识嘛?
- ¥15 网络通信安全解决方案
- ¥50 yalmip+Gurobi
- ¥20 win10修改放大文本以及缩放与布局后蓝屏无法正常进入桌面
- ¥15 itunes恢复数据最后一步发生错误
- ¥15 关于#windows#的问题:2024年5月15日的win11更新后资源管理器没有地址栏了顶部的地址栏和文件搜索都消失了
- ¥100 H5网页如何调用微信扫一扫功能?
- ¥15 讲解电路图,付费求解