Chinaunix首页 | 论坛 | 博客
  • 博客访问: 63488
  • 博文数量: 30
  • 博客积分: 1456
  • 博客等级: 上尉
  • 技术积分: 370
  • 用 户 组: 普通用户
  • 注册时间: 2008-03-08 22:31
文章分类

全部博文(30)

文章存档

2011年(1)

2008年(29)

我的朋友
最近访客

分类: LINUX

2008-08-14 12:58:29


/*******************************************
 * 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;
}

阅读(499) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~