标题:看看````
取消只看楼主
mcy_baby
Rank: 1
等 级:新手上路
帖 子:1
专家分:0
注 册:2007-8-24
 问题点数:0 回复次数:0 
看看````

输入五个数字,从小到大排序,排序好了然后再提示输入一个数字,重新排序!~~我已写好一种办法```有没有其他更好的办法??
#include<stdio.h>
#define N 5
#define Z 6
void main()
{
int i,num[Z],t,k,p=0;
char yorn;

printf("请输入%d个数字:\n",N);

for(i=0;i<N;i++)//此循环是用来输入N个数的
{
scanf("%d",&num[i]);
}

for(k=0;k<N-1;k++)//此嵌套循环运用冒泡排序排列数字
{
for(i=0;i<N-1-k;i++)
{
if(num[i]<num[i+1])
{
t=num[i];
num[i]=num[i+1];
num[i+1]=t;
}
}

}
printf("\n排序后:\n");

for(i=0;i<N;i++)//此循环为了显示排序后的数字
{
printf("%d\n",num[i]);
}

printf("\n是否要插入一个数(y or n):\n");
fflush(stdin);
scanf("%c",&yorn);
if (yorn!='y' && yorn!='n')//此if语句询问是否要插入一个数字
printf("输入错误,请输入y或者n!!!");
else if(yorn=='y')//选择y插入数字,否则退出程序
{
printf("请插入一个数:");
scanf("%d",&p);

for(i=0;i<N;i++)/*因为之前的数字已排列好,所以通过将插入的数字按顺序与他们进行比较
就可以得出该插入的数字应该插在哪个地方*/

{
if(p>num[i])
break;
}
for(k=N;k>i;k--)/*当已经找出插入位置,该循环可以使其位置以及后面的数字往后移动
使得该数可以从适当的位置插入*/

{
num[k]=num[k-1];
}
num[i]=p;

printf("\n插入后再排序:\n");
for(i=0;i<Z;i++)
{
printf("%d\n",num[i]);
}
}
else
printf("\n\n\n\n");


}

搜索更多相关主题的帖子: num 数字 define void 
2007-08-25 00:23



参与讨论请移步原网站贴子:https://bbs.bccn.net/thread-165255-1-1.html




关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.134629 second(s), 8 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved