码迷,mamicode.com
首页 > 其他好文 > 详细

写程序完成输入学生学号,姓名,以及成绩信息,并由高到低排序

时间:2014-08-08 15:25:06      阅读:269      评论:0      收藏:0      [点我收藏+]

标签:style   io   for   ar   amp   type   ef   har   

要求:写程序完成输入学生学号,姓名,以及成绩信息,根据学生成绩由高到低排序。

#include <stdio.h>
#include <string.h>
typedef struct student_score
{
 int id;
 char name[20];
 int score;

}STU;  //定义结构体

int main(int argc, const char *argv[])
{
 int i,j;
 int num;
 STU tmp,stu[100];

 printf("how many students?input the num:");
 scanf("%d",&num);   // 输入学生人数

 for(i=0;i<num;i++)
 {
  printf("plz input the [num:%d]student‘s id:\n",i+1);
  scanf("%d",&stu[i].id);
  puts("plz input the name:");
  scanf("%s",stu[i].name);
  puts("plz input the score:");
  scanf("%d",&stu[i].score);
 }
 /*
 防止输入错误可采用:
 int ret;
 ret=scanf("%d %s %d",&stu[i].id,stu[i].name,stu[i].score);
 if ( ret!=3 )
 printf("input error");
 
 */
 

 printf("============================\n");
 printf("||  ID      name     score\n");
 for(i=0;i<num;i++)
 {
 printf("||  %d        %s       %d    \n",stu[i].id,stu[i].name,stu[i].score);
 }
 for (i=0;i<num;i++)
  for(j=0;j<num-1;j++) //注意后面冒泡排序会出现stu[j+1];
    {     // 如 学生人数为3时 只比较2次。因此循环条件: j<num-1 

   if (stu[j].score<stu[j+1].score)
   {
    tmp=stu[j];
    stu[j]=stu[j+1];
    stu[j+1]=tmp;
   }
  }
 printf("============================\n");
 for (i=0;i<num;i++)
 {
 printf("||  %d        %s       %d    \n",stu[i].id,stu[i].name,stu[i].score);
 }
 return 0;
}

 

 

 

写程序完成输入学生学号,姓名,以及成绩信息,并由高到低排序,布布扣,bubuko.com

写程序完成输入学生学号,姓名,以及成绩信息,并由高到低排序

标签:style   io   for   ar   amp   type   ef   har   

原文地址:http://www.cnblogs.com/xry9211/p/3899177.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!