#include<stdio.h>
#define N 11
main()
{
int i,j;
double sc[N],cj[N],t,m;//sc存放第一次输的成绩,cj反序存放成绩
for(i=0;i<N-1;i++)//从键盘上输入数,给sc赋值
{
printf("请输入第%d个学生的成绩",i+1);
scanf("%lf",&sc[i]);
}
printf("请再输入一个学生的成绩进行插入");
scanf("%lf",&m);
for(i=0;i<N-2;i++)//冒泡排序法
{
for(j=0;j<N-2-i;j++)
if(sc[j]<sc[j+1])
{
t=sc[j];
sc[j]=sc[j+1];
sc[j+1]=t;
}
}
printf("原数组排序后为:\n");
for(i=0;i<N-1;i++)
{
printf("%f ",sc[i]);
if((i+1)%4==0)//每行输出4个成绩
printf("\n");
}
printf("\n");
for(i=0;i<10;i++)//插入数据
if(sc[i]>m)
cj[i]=sc[i];
else
{
cj[i]=m;
break;
}
for(j=i;j<11;j++)
cj[j+1]=sc[j];
printf("反序数组排序后为:\n");
for(i=0;i<N-1;i++)
{
printf("%f ",cj[i]);
if((i+1)%4==0)
printf("\n");
}
printf("\n");
/*如果说想反序后还存入原来数组的话,则把上面的程序段改为下面的
for(i=0;i<N;i++)
sc[i]=cj[i];
for(i=0;i<N-1;i++)
{
printf("%f ",sc[i]);
if((i+1)%4==0)
printf("\n");
}
printf("\n");
*/
}
温馨提示:答案为网友推荐,仅供参考