又是C语言!
从键盘输入6个待排序的数据存放到数组a中,使用冒泡排序的方法将该数组进行升序排序。main函数中从键盘输入6个数据给数组a,冒泡排序后输出结果到屏幕上。源程序命名为a22...
从键盘输入6个待排序的数据存放到数组a中,使用冒泡排序的方法将该数组进行升序排序。main函数中从键盘输入6个数据给数组a,冒泡排序后输出结果到屏幕上。源程序命名为a22.c。
“冒泡法排序”的思想是:依次比较相邻的两个数,将小数放在前面,大数放在后面。
即在第一趟:首先比较第1个和第2个数,将小数放前,大数放后。然后比较第2个数和第3个数,将小数放前,大数放后,如此继续,直至比较最后两个数,将小数放前,大数放后。至此第一趟结束,将最大的数放到了最后。
在第二趟:仍从第一对数开始比较(因为可能由于第2个数和第3个数的交换,使得第1个数不再小于第2个数),将小数放前,大数放后,一直比较到倒数第二个数(倒数第一的位置上已经是最大的),第二趟结束,在倒数第二的位置上得到一个新的最大数(其实在整个数列中是第二大的数)。如此下去,重复以上过程,直至最终完成排序。
【测试数据与运行结果】
第一组
请输入6个整数:
输入:78 76 90 5 45 53
输出:升序排序后的数组是:
5 45 53 76 78 90
第二组
请输入6个整数:
输入:8 2 6 7 1 3
输出:升序排序后的数组是:
1 2 3 6 7 8
第三组
请输入6个整数:
输入:5 4 3 2 1 0
输出:升序排序后的数组是:
0 1 2 3 4 5
#include "stdio.h"
int main( )
{int a[128], i, j, n=6,temp;
printf("请输入6个整数:\n");
for(i=0; i<n; i )
scanf("%d",&a[i]);
【请在此处完善程序】
for(i=0; i<n-1; i )
for(j=0; j<n-1-i; j )
if (a[j]>a[j 1])
{ temp=a[j];
a[j]=a[j 1];
a[j 1]=temp;
}
printf("升序排序后的数组是:\n");
fprintf(fp,"升序排序后的数组是:\n");
for( i=0;i<n;i )
printf("]",a[i]);
} 展开
“冒泡法排序”的思想是:依次比较相邻的两个数,将小数放在前面,大数放在后面。
即在第一趟:首先比较第1个和第2个数,将小数放前,大数放后。然后比较第2个数和第3个数,将小数放前,大数放后,如此继续,直至比较最后两个数,将小数放前,大数放后。至此第一趟结束,将最大的数放到了最后。
在第二趟:仍从第一对数开始比较(因为可能由于第2个数和第3个数的交换,使得第1个数不再小于第2个数),将小数放前,大数放后,一直比较到倒数第二个数(倒数第一的位置上已经是最大的),第二趟结束,在倒数第二的位置上得到一个新的最大数(其实在整个数列中是第二大的数)。如此下去,重复以上过程,直至最终完成排序。
【测试数据与运行结果】
第一组
请输入6个整数:
输入:78 76 90 5 45 53
输出:升序排序后的数组是:
5 45 53 76 78 90
第二组
请输入6个整数:
输入:8 2 6 7 1 3
输出:升序排序后的数组是:
1 2 3 6 7 8
第三组
请输入6个整数:
输入:5 4 3 2 1 0
输出:升序排序后的数组是:
0 1 2 3 4 5
#include "stdio.h"
int main( )
{int a[128], i, j, n=6,temp;
printf("请输入6个整数:\n");
for(i=0; i<n; i )
scanf("%d",&a[i]);
【请在此处完善程序】
for(i=0; i<n-1; i )
for(j=0; j<n-1-i; j )
if (a[j]>a[j 1])
{ temp=a[j];
a[j]=a[j 1];
a[j 1]=temp;
}
printf("升序排序后的数组是:\n");
fprintf(fp,"升序排序后的数组是:\n");
for( i=0;i<n;i )
printf("]",a[i]);
} 展开
2个回答
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询