实验六
2021/6/9 18:51:10
本文主要是介绍实验六,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!
1 #include<stdio.h> 2 #include<stdlib.h> 3 #include<string.h> 4 #define N 3 5 6 typedef struct student{ 7 int id; 8 char name[20]; 9 char subject[20]; 10 float perf; 11 float mid; 12 float total; 13 float final; 14 char level[10]; 15 }STU; 16 17 void input(STU[],int ); 18 void calc(STU[],int); 19 int fail(STU[],STU [],int); 20 void sort(STU[],int); 21 void print(STU[], int); 22 23 int main(){ 24 STU st[N],fst[N]; 25 int k; 26 27 printf("录入学生成绩信息:\n"); 28 input(st,N); 29 30 printf("\n成绩处理...\n"); 31 calc(st,N); 32 33 k = fail(st,fst,N); 34 sort(st, N); 35 printf("\n学生成绩排名情况:\n"); 36 print(st, N); 37 38 printf("\n不及格学生信息:\n"); 39 40 print(fst, k); 41 return 0; 42 } 43 44 void input(STU s[],int n){ 45 int i; 46 for(i=0;i<n;i++) 47 scanf("%d %s %s %f %f %f", 48 &s[i].id,s[i].name,s[i].subject,&s[i].perf,&s[i].mid,&s[i].final); 49 } 50 51 void calc(STU s[],int n){ 52 int i; 53 for(i=0;i<n;i++){ 54 s[i].total=s[i].perf*0.2+s[i].mid*0.2+s[i].final*0.6; 55 56 if(s[i].total>=90) 57 strcpy(s[i].level,"优"); 58 else if(s[i].total>=80) 59 strcpy(s[i].level,"良"); 60 else if(s[i].total>=70) 61 strcpy(s[i].level,"中"); 62 else if(s[i].total>=60) 63 strcpy(s[i].level,"及格"); 64 else 65 strcpy(s[i].level,"不及格"); 66 } 67 } 68 69 int fail(STU s[],STU t[],int n) { 70 int i,k=0; 71 72 for(i=0;i<n;i++) 73 if(s[i].total<60) 74 t[k++]=s[i]; 75 76 return k; 77 } 78 79 void sort(STU s[],int n) { 80 int i,j; 81 STU temp; 82 83 for(i=0;i<n-1;i++) 84 for(j=0;j<n-i-1;j++) 85 if(s[j].total<s[j+1].total){ 86 temp = s[j]; 87 s[j] = s[j+1]; 88 s[j+1] = temp; 89 } 90 } 91 92 void print(STU s[], int n) { 93 int i; 94 printf("-----------------\n"); 95 printf("学号 姓名 考试科目 平时成绩 期中成绩 期末成绩 总评成绩 成绩等级\n"); 96 97 for(i=0;i<n;i++) 98 printf("%4d %4s %4s %5.1f %5.1f %5.1f %5.1f %6s\n", 99 s[i].id,s[i].name,s[i].subject,s[i].perf,s[i].mid,s[i].final,s[i].total,s[i].level); 100 }
#include <stdio.h> const int N=5; // 定义结构体类型struct student,并定义STU为其别名 typedef struct student { long no; char name[20]; int score; }STU; // 函数声明 void input(STU s[], int n); int findMinlist(STU s[], STU t[], int n); void output(STU s[], int n); int main() { STU stu[N], minlist[N]; int count; printf("录入%d个学生信息\n", N); input(stu, N); printf("\n统计最低分人数和学生信息...\n"); count = findMinlist(stu, minlist, N); printf("\n一共有%d个最低分,信息如下:\n", count); output(minlist, count); return 0; } // 输入n个学生信息,存放在结构体数组s中 void input(STU s[], int n) { int i; for(i=0; i<n; i++) scanf("%ld %s %d", &s[i].no, s[i].name, &s[i].score); } // 输出结构体s中n个元素信息 void output(STU s[], int n) { int i; for(i=0; i<n; i++) printf("%ld %s %d\n", s[i].no, s[i].name, s[i].score); } int findMinlist(STU s[], STU t[], int n) { int i, j=0, min; min=s[0].score; for(i=0;i<n;i++) { if(s[i].score<min) min = s[i].score; } for(i=0;i<n;i++) { if(s[i].score==min) t[j++]=s[i]; } return j; }
1 #include<stdio.h> 2 #include<string.h> 3 const int N = 10; 4 5 typedef struct student{ 6 long int id; 7 char name[20]; 8 float obj; 9 float sub; 10 float sum; 11 char level[10]; 12 }STU; 13 14 void input(STU s[],int n); 15 void output(STU s[],int n); 16 void process(STU s[],int n); 17 18 int main(){ 19 STU stu[N]; 20 21 printf("录入%d个考生信息: 准考证号,姓名,客观题得分(<=40),操作题得分(<=60)\n", N); 22 input(stu, N); 23 24 printf("\n对考生信息进行处理: 计算总分,确定等级\n"); 25 process(stu, N); 26 27 printf("\n打印考生完整信息: 准考证号,姓名,客观题得分,操作题得分,总分,等级\n\n"); 28 output(stu, N); 29 30 return 0; 31 } 32 33 void input(STU s[],int n){ 34 int i; 35 for(i=0;i<n;i++) 36 scanf("%d%s%f%f", &s[i].id, s[i].name, &s[i].obj, &s[i].sub); 37 } 38 39 void output(STU s[],int n){ 40 int i; 41 printf("准考证号 姓名 客观题得分 操作题得分 总分 等级\n"); 42 printf("------------------------------------------------------------\n"); 43 for(i=0;i<n;i++) 44 printf("%4ld %6s %5.2f %.2f %6.2f %4s\n", s[i].id, s[i].name, s[i].obj, s[i].sub, s[i].sum, s[i].level); 45 printf("------------------------------------------------------------\n"); 46 } 47 48 void process(STU s[],int n){ 49 int i,j,k; 50 STU temp; 51 for(i=0;i<n;i++){ 52 s[i].sum = s[i].sub + s[i].obj; 53 } 54 55 for(i=0;i<n-1;i++) 56 for(j=0;j<n-i-1;j++) 57 if(s[j].sum < s[j+1].sum){ 58 temp=s[j]; 59 s[j]=s[j+1]; 60 s[j+1]=temp; 61 } 62 63 for(i=0;i<n;i++){ 64 k=i+1; 65 66 if((float(k)/n)<0.2) strcpy(s[i].level,"优秀"); 67 else if((float(k)/n)<0.6) strcpy(s[i].level,"合格"); 68 else strcpy(s[i].level,"不合格"); 69 } 70 }
这篇关于实验六的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!
- 2024-12-22项目:远程温湿度检测系统
- 2024-12-21《鸿蒙HarmonyOS应用开发从入门到精通(第2版)》简介
- 2024-12-21后台管理系统开发教程:新手入门全指南
- 2024-12-21后台开发教程:新手入门及实战指南
- 2024-12-21后台综合解决方案教程:新手入门指南
- 2024-12-21接口模块封装教程:新手必备指南
- 2024-12-21请求动作封装教程:新手必看指南
- 2024-12-21RBAC的权限教程:从入门到实践
- 2024-12-21登录鉴权实战:新手入门教程
- 2024-12-21动态权限实战入门指南