永发信息网

用C语言编写一个比较数的大小并排序的程序?

答案:4  悬赏:0  手机版
解决时间 2021-07-17 00:30
  • 提问者网友:几叶到寒
  • 2021-07-16 17:45
用C语言编写一个比较数的大小并排序的程序?
最佳答案
  • 五星知识达人网友:逃夭
  • 2021-07-16 19:16

#include<stdio.h>
void BubbleStort()
{
int i,j;
int arr[7];
printf("请输入要排数字:\n");
for(i=0;i<=6;i++)
scanf("%d",&arr[i]);
for(i=1;i<=6;i++)
{
for (j=0;j<=6-i;j++)
{
if(arr[j]>arr[j+1])
{
int t;
t=arr[j];
arr[j]=arr[j+1];
arr[j+1]=t;
}
}
}
printf("排序后的数:\n");
for(i=0;i<=6;i++)
printf("%4d",arr[i]);
}
void SelectStort()
{
int i,j;
int arr[7];
printf("请输入要排数字:\n");
for(i=0;i<=6;i++)
scanf("%d",&arr[i]);
for(i=0;i<=5;i++)
{
int k;
k=i;
for(j=i+1;j<=6;j++)
{
if(arr[k]<arr[j])
k=j;
}
if(i!=k)
{
int t;
t=arr[i];
arr[i]=arr[k];
arr[k]=t;
}
}
printf("排序后的数:\n");
for(i=0;i<=6;i++)
printf("%4d",arr[i]);
}
void InsertSort()
{
int i,j;
int arr[7];
printf("请输入要排数字:\n");
for(i=0;i<=6;i++)
scanf("%d",&arr[i]);
for( i=1;i<=6;i++)
{
int t;
t = arr[i];
for(j=i;j>0 && arr[j-1]>arr[j];j--)
{
arr[j]=arr[j-1];
arr[j-1]=t;
}

}
printf("排序后的数:\n");
for(i=0;i<=6;i++)
printf("%4d",arr[i]);
}
void main()


{
printf("----------------------------\n");
printf("---------1.选择排序---------\n");
printf("---------2.冒泡排序---------\n");
printf("---------3.插入排序---------\n");
printf("----------------------------\n");
printf("请输入你的选择(1,2,3):");
int c;
scanf ("%d",&c);
if (c==1)
BubbleStort();
if(c==2)
SelectStort();
if(c==3)
InsertSort();
}


写的是7个 要是还有的话 你改下参数


有几种方法排序

全部回答
  • 1楼网友:西岸风
  • 2021-07-16 20:40
#include <stdio.h> int main() { int a[] = { 3,9,4,8,2,6,0,5,1,7 }; int i = 0, t; while ( i < 10 ) if ( a[i] < a[i+1] ) ++i; else { t = a[i]; a[i] = a[i+1]; a[i+1] = t; --i; } for ( i = 0; i < 10; ++i ) printf( "%d ", a[i] ); }
  • 2楼网友:舍身薄凉客
  • 2021-07-16 20:09

你要比较几个数,都不一样的!!

  • 3楼网友:痴妹与他
  • 2021-07-16 19:27

这个是比较三个数的大小的,你看看有用不?

#include <stdio.h> void main() { int a; int b; int c; int d; scanf("%d %d %d",&a,&b,&c); //读入数据 if (a>b) d=a; else d=b; //取a、b中的最大值 if (d<c) d=c; printf("%d",d); //输出三个数中的最大值 }

我要举报
如以上回答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
点此我要举报以上问答信息
大家都在看
推荐资讯