/*******************************************
* 1、定义一个数组a[11],用以存放学生成绩。
* 2、从键盘输入10个学生成绩,将学生成绩按照
* 从高到低排序
* 3、再输入一个学生成绩,将此成绩按照排序规律
* 插入原学生成绩数组
* 4、将排好序的成绩单反序存放
* ******************************************/
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <stdbool.h>
int
main(void)
{
int a[11]={34,93,73,44,85,95,46,57,38,99};
int n,temp;
int i,j;
bool status;
printf("Input 10 num: \n");
/*
for(i=0;i<10;i++)
scanf("%d",&a[i]);*/
//以冒泡排序法来排序
for(i=1;i<10;i++)
{
status=true;
for(j=0;j<10-i;j++)
if(a[j]<a[j+1])
{
status=false;
temp=a[j];
a[j]=a[j+1];
a[j+1]=temp;
}
if(status==true)
break;
}
//已经排好序
printf("ordered.Input a another num: \n");
for(i=0;i<10;i++)
printf("%d ",a[i]);
putchar('\n');
scanf("%d",&n);
for(i=0;i<10;i++)
{
if(a[i]<=n)
{
for(j=10;j>=i;j--)
a[j]=a[j-1];
a[i]=n;
break;
}
}
printf("\n");
for(i=0;i<=10;i++)
printf("%d ",a[i]);
/*
for(i=1;i<=10;i++)
{
for(j=i;j>=1;j--)
if(a[j]
{
temp=a[j];
a[j]=a[j-1];
a[j-1]=temp;
printf("a[%d]<===>a[%d]\n",a[j],a[j-1]);
}
}*/
/*
for(i=0;i<11/2;i++)
{
temp=a[i];
a[i]=a[10-i];
a[10-i]=temp;
printf("a[%d]<==>a[%d]\n",a[i],a[10-i]);
}
*/
int *head,*tail;
head=a;
tail=a+10;
for(;tail>head;tail--,head++)
{
temp=*head;
*head=*tail;
*tail=temp;
}
printf("\n");
for(i=0;i<=10;i++)
printf("%d ",a[i]);
printf("\n");
return 0;
}
|