一个c语言程序能冒泡输出从小到大值并输出每一趟结果,且如果当数字有序时无需进行排序
2条回答 默认 最新
threenewbee 2023-11-15 22:50关注#include <stdio.h> int main() { int a[15] = { 3,7,1,4,9,8,11,2,3,9,0,1,7,4,12 }; for (int i = 0; i < 14; i++) { int hasswaped = 0; for (int j = 0; j < 14 - i; j++) { if (a[j] > a[j + 1]) { hasswaped = 1; int t = a[j]; a[j] = a[j + 1]; a[j + 1] = t; } } printf("第%d趟排序:", i + 1); for (int j = 0; j < 15; j++) { printf("%d ", a[j]); } printf("\n"); if (hasswaped == 0) { printf("第%d趟没有发生交换,退出", i + 1); break; } } return 0; }输出:
第1趟排序:3 1 4 7 8 9 2 3 9 0 1 7 4 11 12
第2趟排序:1 3 4 7 8 2 3 9 0 1 7 4 9 11 12
第3趟排序:1 3 4 7 2 3 8 0 1 7 4 9 9 11 12
第4趟排序:1 3 4 2 3 7 0 1 7 4 8 9 9 11 12
第5趟排序:1 3 2 3 4 0 1 7 4 7 8 9 9 11 12
第6趟排序:1 2 3 3 0 1 4 4 7 7 8 9 9 11 12
第7趟排序:1 2 3 0 1 3 4 4 7 7 8 9 9 11 12
第8趟排序:1 2 0 1 3 3 4 4 7 7 8 9 9 11 12
第9趟排序:1 0 1 2 3 3 4 4 7 7 8 9 9 11 12
第10趟排序:0 1 1 2 3 3 4 4 7 7 8 9 9 11 12
第11趟排序:0 1 1 2 3 3 4 4 7 7 8 9 9 11 12
第11趟没有发生交换,退出本回答被题主选为最佳回答 , 对您是否有帮助呢?解决 无用评论 打赏 举报