任务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,l=0; double k=0; STU *p=a; for(;p<a+n;p++) {p->sum=p->s1*0.7+p->s2*0.3; k+=p->sum;} for(i=0,p=a;p<a+n;p++,i++) {if((p->sum)>k/n) { strcpy(p->level,"均分以上"); h[l++]=a[i];} } return l; }
任务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 m1,m2=500,i; for(i=0;i<n;i++){ a[i].sum=a[i].maths+a[i].computer+a[i].english; if(m1<a[i].sum) m1=a[i].sum; if(m2>a[i].sum) m2=a[i].sum; } for(i=0;i<n;i++){ if(m1==a[i].sum) strcpy(a[i].level,"优秀"); else if(m2==a[i].sum) 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 i,min=100,k=0; 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; }
标签:int,sum,STU,实验,printf,fun,void From: https://www.cnblogs.com/zzx1119/p/17447434.html