欢迎光临散文网 会员登陆 & 注册

C语言练习

2022-10-25 12:29 作者:沐笙--ms  | 我要投稿


例10.4 


struct STUDENT

{ int num;

char name[10];

float score;

};


main()

{ struct STUDENT stud[3],*p;

for(p=stud,p<stud+3;p++)

scanf("%d,%s,%f",&p->num, p->name, &p->sex, &p->age, &p->score);

for(p=stud,p<stud+3;p++)

printf("%d,%s,%f\n",p->num, p->name, p->sex, p->age, p->score);

}

[例10.5]普通结构体类型作函数参数


struct STUDENT

{ int num;

char name[10];

float score;

};


void PrintStudent(struct STUDENT s) /* 参数为结构体 */

{ printf("%d,%s,%f\n",s.num,s.name,s.score);

}


main()

{ struct STUDENT a={1002,"ZhaoLi",93.0};

PrintStudent(a);

}

[10.6]结构体数组作为函数参数


struct STUDENT

{ int num;

char name[10];

float score;

};


void ReadStudents(struct STUDENT s[],int n) /* 参数为结构体数组 */

{ int i;

for(i=0;i<n;i++)

scanf("%d,%s,%f",&s[i].num, s[i].name, &s[i].score);

}


void PrintStudents(struct STUDENT s[],int n) /* 参数为结构体数组 */

{ int i;

for(i=0;i<n;i++)

printf("%d,%s,%f\n",s[i].num, s[i].name, s[i].score);

}


main()

{ struct STUDENT a[3];

ReadStudents(a,3);

PrintStudents(a,3);

}

[10.7]结构体指针作为函数参数


struct STUDENT

{ int num;

char name[10];

float score;

};


void ReadStudent(struct STUDENT *p) /* 参数为结构体指针 */

{ scanf("%d,%s,%f",&p->num, p->name, &p->score);

}


void PrintStudent(struct STUDENT s)

{ printf("%d,%s,%f\n",s.num,s.name,s.score);

}


main()

{ struct STUDENT a;

ReadStudent(&a);

PrintStudent(a);

}

[10.8] 返回值为结构体类型


struct STUDENT

{ int num;

char name[10];

float score;

};


struct STUDENT ReadStudent() /* 返回值类型为结构体 */

{ struct STUDENT s

scanf("%d,%s,%f",&s.num, s.name, &s.score);

return s;

}


void PrintStudent(struct STUDENT s)

{ printf("%d,%s,%f\n",s.num,s.name,s.score);

}


main()

{ struct STUDENT a;

a=ReadStudent();

PrintStudent(a);

}

[10.9] 返回值为结构体指针


struct STUDENT

{ int num;

char name[10];

float score;

};


struct STUDENT *BestStudent(struct STUDENT s[],int n) /* 返回结构体指针 */

{ int i,pos=0;

for(i=1;i<n;i++)

if(s[pos].score<s[i].score)pos=i;

return  &s[pos];

}


void PrintStudent(struct STUDENT s)

{ printf("%d,%s,%f\n",s.num, s.name, s.score);

}


main()

{ struct STUDENT stud[3]={{1001,"LiMing",90.5},

{1002,"ZhaoLi",95.0};

{1003,"WangLin",93.0}};

struct STUDENT *p;

p=BestStudent(stud,3);

PrintStudent(*p);

}

例10.10 计算下一个工作日(五天工作制)


enum WEEKDAY{sun,mon,tue,wed,thu,fri,sat};


enum WEEKDAY NextWorkday(enum WEEKDAY w)

{ if(w<fri) w++;

else w=mon;

return w;

}

char *WeekName(enum WEEKDAY w)

{ switch(w)

{ case sun: return("星期日");

case mon: return("星期一");

case tue: return("星期二");

case wed: return("星期三");

case thu: return("星期四");

case fri: return("星期五");

case sat: return("星期六");

}

}


main()

{ enum WEEKDAY  x,y;

int d;

printf("今天是星期几(星期日=0,星期一=1,……,星期六=6):");

scanf("%d",&d);

x=(enum WEEKDAY)d;

y= NextWorkday(x);

printf("今天是%s,",WeekName(x));

printf("下一个工作日是%s\n",WeekName(y));

}


C语言练习的评论 (共 条)

分享到微博请遵守国家法律