想问大家一个简单的C程序设计题,题如下: 就是利用C语言,把输入的几个数进行全组合排序。

 我来答
蓝风水晶灵
2011-03-12 · TA获得超过934个赞
知道小有建树答主
回答量:731
采纳率:0%
帮助的人:428万
展开全部
题目:对10个数进行排序

1.程序分析:可以利用 选择 法,即从后9个比较过程中,选择一个最小的与第一个元素交换,

下次类推,即用第二个元素与后8个进行比较,并进行交换。

2.程序源代码:

#define N 10

main()

{int i,j,min,tem,a[N];

/*input data*/

printf("please input ten num:\n");

for(i=0;i<N;i++)

{

printf("a[%d]=",i);

scanf("%d",&a[i]);}

printf("\n");

for(i=0;i<N;i++)

printf("%5d",a[i]);

printf("\n");

/*sort ten num*/

for(i=0;i<N-1;i++)

{min=i;

for(j=i+1;j<N;j++)

if(a[min]>a[j]) min=j;

tem=a[i];

a[i]=a[min];

a[min]=tem;

}

/*output data*/

printf("After sorted \n");

for(i=0;i<N;i++)

printf("%5d",a[i]);

}
追问
不好意思哈,还想问一下您,如果对他们进行无重复的排序该怎样呢?
追答
C语言程序:删除数组中的重复数据 
要求输入一个n个数据的数组,把数组中重复的数删除

输入:n n个数到a[n]中

输出:处理前后的数组对比

参考程序:

#i nclude

main()
{
int a[20],i,j,k,n;
do
{
printf("input n=");
scanf("%d",&n);
}while(n>20 || n<2);
for(i=0;i<n;i++)
{
printf("input a[%d]=",i);
scanf("%d",&a[i]);
}
printf("\n");
for(i=0;i<n;i++)
printf("%d ",a[i]);
printf("\n");
for(i=1;i<n;i++)
{
for(j=0;j<i;j++)
if(a[i]==a[j])
break;
if(j<i)
{
for(k=i+1;k<n;k++)
a[k-1]=a[k];
i--; n--;
}
}
for(i=0;i<n;i++)
printf("%d ",a[i]);
getch();
}

如输入 n=10 1,2,1,1,4,6,2,1,1,8

输出:1 2 1 1 4 6 2 1 1 8

1 2 4 6 8
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式