C语言作业,编写一个程序完成以下八个数字的从小到大排序。(10.3.6.12.7.8.5.4)。求大神帮助
#include <stdio.h>
//冒泡排序(升序)
void bubble_sort(int a[],int n)
{
int i,j; //j表示趟数,i表示每i趟两两比较的次数
int tmp; //临时变量
for(j=0;j<n-1;j++)
for(i=0;i<n-1-j;i++)
{
if(a[i] > a[i+1])
{
tmp=a[i];
a[i]=a[i+1];
a[i+1]=tmp;
}
}
}
int main()
{
int a[8]={10,3,6,12,7,8,5,4};
bubble_sort(a,8);
for(int i=0;i<8;i++)
{
printf("%d ",a[i]);
}
printf("\n");
return 0;
}
//冒泡排序(升序)
void bubble_sort(int a[],int n)
{
int i,j; //j表示趟数,i表示每i趟两两比较的次数
int tmp; //临时变量
for(j=0;j<n-1;j++)
for(i=0;i<n-1-j;i++)
{
if(a[i] > a[i+1])
{
tmp=a[i];
a[i]=a[i+1];
a[i+1]=tmp;
}
}
}
int main()
{
int a[8]={10,3,6,12,7,8,5,4};
bubble_sort(a,8);
for(int i=0;i<8;i++)
{
printf("%d ",a[i]);
}
printf("\n");
return 0;
}
运行结果如下:
温馨提示:答案为网友推荐,仅供参考
第1个回答 推荐于2018-04-30
#include<stdio.h>
void sorted(int a[],int n){ //选择法排序 小->大
int i,j,k,t;
for(i=0;i<n-1;i++){
k=i;
for(j=i+1;j<n;j++){
if(a[k]>a[j])k=j;}
if(k!=i){t=a[k];a[k]=a[i];a[i]=t;}}
}
int main(){
int n=8,i;
int a[]={10,3,6,12,7,8,5,4};
printf("排序前的数组:");
for(i=0;i<n;i++)printf("%d ",a[i]);printf("\n");
sorted(a,n);printf("排序后的数组:");
for(i=0;i<n;i++)printf("%d ",a[i]);printf("\n");
return 0;
}追问
void sorted(int a[],int n){ //选择法排序 小->大
int i,j,k,t;
for(i=0;i<n-1;i++){
k=i;
for(j=i+1;j<n;j++){
if(a[k]>a[j])k=j;}
if(k!=i){t=a[k];a[k]=a[i];a[i]=t;}}
}
int main(){
int n=8,i;
int a[]={10,3,6,12,7,8,5,4};
printf("排序前的数组:");
for(i=0;i<n;i++)printf("%d ",a[i]);printf("\n");
sorted(a,n);printf("排序后的数组:");
for(i=0;i<n;i++)printf("%d ",a[i]);printf("\n");
return 0;
}追问
是从小到大排序么
还有那个排序前和排序后是怎么填
😓
追答你运行一下程序看看不就知道啦
追问谢谢
本回答被提问者采纳