实验 6
Part 1
ex 1_2补足程序:
#include <stdio.h> const int N=5; 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; } 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 findMinlist(STU s[], STU t[], int n) { int i=0,j=0; int 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(min==s[i].score) { t[j++]=s[i]; } } return j; }
ex1_3编程练习:
#include <stdio.h> #include <string.h> const int N = 10; // ¶¨Òå½á¹¹ÌåÀàÐÍstruct student£¬²¢¶¨ÒåÆä±ðÃûΪSTU typedef struct student { long int id; char name[20]; float objective; /*¿Í¹ÛÌâµÃ·Ö*/ float subjective; /*²Ù×÷ÌâµÃ·Ö*/ float sum; char level[10]; }STU; // º¯ÊýÉùÃ÷ void input(STU s[], int n); void output(STU s[], int n); void process(STU s[], int n); int main() { STU stu[N]; printf("¼Èë%d¸ö¿¼ÉúÐÅÏ¢: ×¼¿¼Ö¤ºÅ£¬ÐÕÃû£¬¿Í¹ÛÌâµÃ·Ö(<=40)£¬²Ù×÷ÌâµÃ·Ö(<=60)\n", N); input(stu, N); printf("\n¶Ô¿¼ÉúÐÅÏ¢½øÐд¦Àí: ¼ÆËã×Ü·Ö£¬È·¶¨µÈ¼¶\n"); process(stu, N); printf("\n´òÓ¡¿¼ÉúÍêÕûÐÅÏ¢: ×¼¿¼Ö¤ºÅ£¬ÐÕÃû£¬¿Í¹ÛÌâµÃ·Ö£¬²Ù×÷ÌâµÃ·Ö£¬×Ü·Ö£¬µÈ¼¶\n"); output(stu, N); return 0; } // ¼È뿼ÉúÐÅÏ¢:×¼¿¼Ö¤ºÅ£¬ÐÕÃû£¬¿Í¹ÛÌâµÃ·Ö£¬²Ù×÷ÌâµÃ·Ö void input(STU s[], int n) { int i; for(i=0;i<n;i++) { scanf("%ld %s %f %f",&s[i].id,s[i].name,&s[i].objective,&s[i].subjective); } } //Êä³ö¿¼ÉúÍêÕûÐÅÏ¢: ×¼¿¼Ö¤ºÅ£¬ÐÕÃû£¬¿Í¹ÛÌâµÃ·Ö£¬²Ù×÷ÌâµÃ·Ö£¬×Ü·Ö£¬µÈ¼¶ void output(STU s[], int n) { int i; for(i=0;i<n;i++) { printf("%ld %s %f %f %f %s\n",s[i].id,s[i].name,s[i].objective,s[i].subjective,s[i].sum,s[i].level); } } // ¶Ô¿¼ÉúÐÅÏ¢½øÐд¦Àí£º¼ÆËã×Ü·Ö£¬ÅÅÐò£¬È·¶¨µÈ¼¶ void process(STU s[], int n) { int i,j,k; STU temp; for(i=0;i<n;i++) s[i].sum=s[i].objective+s[i].subjective; for(j=0;j<n-1;j++) { for(k=0;k<n-j-1;k++) { if(s[k].sum<s[k+1].sum) { temp=s[k]; s[k]=s[k+1]; s[k+1]=temp; } } } i=0; for(i=0;i<n;i++) { if(i==0) strcpy(s[i].level,"ÓÅÐã"); else if(i>=1&&i<=4) strcpy(s[i].level,"ºÏ¸ñ"); else if(i>=5&&i<=9) strcpy(s[i].level,"²»ºÏ¸ñ"); } }
Part 2
结构体中每个数据有独立的内存地址,而共用体共享一个内存地址;并且在同一时刻,结构体所有元素同时存在,而共用体只能有一个元素存在
Part 3
枚举类型可以用于描述char,int,float,double类型数据
枚举类型不可以直接输入输出
枚举类型可以隐含转换为整型,但整型转换为枚举类型,必须显式转换
实验总结:
由于不同编译器对语法的要求严格程度不同,输入输出碰到问题
posted on 2019-06-10 19:40 weirdo12138 阅读(155) 评论(1) 编辑 收藏 举报