实验6
实验任务4
源代码
#include<stdio.h> #include<string.h> #define N 100 typedef struct{ char num[10]; int s1; int s2; double sum; char level[10]; }STU; int fun(STU a[],int n,STU h[]); int main(){ STU s[N]={{"GA05",85,76}, {"GA03",76,90}, {"GA02",69,90}, {"GA04",85,56}, {"GA01",91,95}, {"GA07",72,80}, {"GA08",64,45}, {"GA06",87,98}, {"GA015",85,86}, {"GA013",91,97}}; STU h[N]; int i,k,n=10; k=fun(s,n,h); printf("There are:\n"); for(i=0;i<k;i++) printf("%s %d %d %.2f %s\n",h[i].num,h[i].s1,h[i].s2,h[i].sum,h[i].level); return 0; } int fun(STU a[],int n,STU h[]){ int i,t=0; double ave,s=0; for(i=0;i<n;i++){ a[i].sum=a[i].s1*0.7+a[i].s2*0.3; s=s+a[i].sum; } ave=1.0*s/n; for(i=0;i<n;i++){ if(a[i].sum>ave){ strcpy(a[i].level,"均分以上"); h[t++]=a[i]; } } return t; }
运行截图
实验任务5
源代码
#include <stdio.h> #include <string.h> #define N 5 typedef struct student { char name[10]; int num; int maths; int computer; int english; int sum; char level[10]; } STU; void fun(STU a[], int n); // 函数声明 int main() { STU s[6*N]={ {"A001", 1, 34, 67, 80}, {"B003", 3, 78, 87, 90}, {"A002", 2, 90, 98, 99}, {"B002", 4, 56, 78, 98}, {"A005", 5, 35, 67, 79} }; int i; fun(s, N); for(i = 0; i < N; i++) printf("%s %d %d %d %d %d %s\n", s[i].name, s[i].num, s[i].maths, s[i].computer, s[i].english, s[i].sum, s[i].level); return 0; } void fun(STU a[], int n){ int i,max,min; for(i=0;i<n;i++) a[i].sum=a[i].maths+a[i].computer+a[i].english; max=a[0].sum; for(i=0;i<n;i++){ if(a[i].sum>=max) max=a[i].sum; } min=a[0].sum; for(i=0;i<n;i++){ if(a[i].sum<=min) min=a[i].sum; } for(i=0;i<n;i++){ if(a[i].sum==max) strcpy(a[i].level,"优秀"); else if(a[i].sum==min) strcpy(a[i].level,"不及格"); else strcpy(a[i].level,"合格"); } }
运行截图

实验任务6
源代码
#include<stdio.h> #define N 5 typedef struct student{ long no; char name[20]; int score; }STU; void input(STU s[],int n); int find_min_list(STU s[],STU t[],int n); void output(STU s[],int n); int main(){ STU stu[N],min_list[N]; int count; printf("录入%d个学生信息\n",N); input(stu,N); printf("\n统计最低分人数和学生信息...\n"); count = find_min_list(stu, min_list, N); printf("\n一共有%d个最低分,信息如下:\n", count); output(min_list, count); return 0; } void input(STU s[],int n){ int i; for(i=0;i<n;i++) scanf("%d %s %d",&s[i].no,s[i].name,&s[i].score); } void output(STU s[],int n){ int i; for(i=0;i<n;i++) printf("%d %s %d\n",s[i].no,s[i].name,s[i].score); } int find_min_list(STU s[],STU t[],int n){ int min,i,k; 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[k++]=s[i]; return k; }
运行截图


浙公网安备 33010602011771号