实验任务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[]) { double ave=0; int i; for(i=0;i<n;i++) { a[i].sum=0.3*a[i].s2+0.7*a[i].s1; ave+=a[i].sum; } ave/=n; int j=0; for(i=0;i<n;i++) if(a[i].sum>=ave) { strcpy(a[i].level,"均分以上"); h[j++]=a[i]; } return j; }
实验任务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}, {"BOO2",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 max,min; max=min=a[0].maths+a[0].computer+a[0].english; int i; for(i=0;i<N;i++) { a[i].sum=a[i].maths+a[i].computer+a[i].english; if(a[i].sum<min) min=a[i].sum; else if(a[i].sum>max) max=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("%ld %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("%ld %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=s[0].score; for(i=0;i<n;i++) if(s[i].score<min) min=s[i].score; int j=0; for(i=0;i<n;i++) if(s[i].score==min) t[j++]=s[i]; return j; }
本次实验内容十分简单,结构体如果不涉及指针,应该还是比较简单的。但是从中也可以看出我自己难以发现一些小错误。
标签:10,int,list,char,STU,实验,include From: https://www.cnblogs.com/fyzzsnk/p/17431178.html