作业要求:
- 定义一个学生结构体,包含结构体成员:身高,姓名,成绩;定义一个结构体数组有7个成员,要求终端输入结构体成员的值,根据学生成绩,进行冒泡排序。
- 整理思维导图
运行代码:
#include<stdio.h>
#include<string.h>
#include<stdlib.h>
#define N 7
typedef struct Stu{
char name[100];
int high;
int score;
}Stu,*Stu_p;
int main(int argc, const char *argv[])
{
int i,j;
char temp[100];
Stu arr[N];
printf("输入学生信息\n");
for(i=0;i<N;i++){
printf(">>>");
scanf("%s %d %d",arr[i].name,&arr[i].high,&arr[i].score);
}
for(i=1;i<N;i++){
for(j=0;j<N-i;j++){
if(arr[j].score<arr[j+1].score){
strcpy(temp,arr[j].name);
strcpy(arr[j].name,arr[j+1].name);
strcpy(arr[j+1].name,temp);
arr[j].score=arr[j].score^arr[j+1].score;
arr[j+1].score=arr[j].score^arr[j+1].score;
arr[j].score=arr[j].score^arr[j+1].score;
arr[j].high=arr[j].high^arr[j+1].high;
arr[j+1].high=arr[j].high^arr[j+1].high;
arr[j].high=arr[j].high^arr[j+1].high;
}
}
}
printf("排名后\n");
for(i=0;i<N;i++){
printf("%-12s %d %d\n",arr[i].name,arr[i].high,arr[i].score);
}
return 0;
}
运行截图: