云题海 - 专业文章范例文档资料分享平台

当前位置:首页 > C语言程序设计课后习题答案

C语言程序设计课后习题答案

  • 62 次阅读
  • 3 次下载
  • 2025/7/11 2:53:12

}

2. 写一个函数days,实现上面的计算。由主函数将年、月、日传递给days 函数,计算后将日子数传回主函数输出。 解:

struct y_m_d {int year: int month; int day; }date;

int days(struct y_m_d date1) { int sum;

switch(date1.month) {

case 1:sum=date1.day; break; case 2:sum=date1.day+31; break; case 3:sum=date1.day+59; break; case 4:sum=date1.day+90; break; case 5:sum=date1.day+120; break; case 6:sum=date1.day+151; break; case 7:sum=date1.day+181; break; case 8:sum=date1.day+212; break; case 9:sum=date1.day+243; break case 10:sum=date1.day+243; break case 11:sum=date1.day+243; break case 12:sum=date1.day+243; break } if((d

ate1.year%4==0&&date1.year0!=0||date1.year@0==0)&&date1.month>=3) sum+=1; return sum; }

3. 编写一个函数print,打印一个学生的成绩数组,该数组中有5个学生的数据记录,每个记录包括num、name、score[3],用主函数输入这些记录,用print函数输出这些记录。 解: #define N 5 struct student {char num[6]; char name[8]; int score[4];

}stu[N]; void main() { int i,j ;

for(i=0;i<N;i++) {

printf("\\Input score of student %d:\\n",i+1); printf("no.:"); scanf("%s",stu[i].num); printf("name:"); scanf("%s",stu[i].name); for(j=0;j<3;j++) {

printf("score%d:"j+1);

scanf("%d",&stu[i].score[j]); }

printf("\\n"); } print(stu); }

print(struct student stu[6]) { int i,j;

printf("%5ss",stu[i].num,stu[i].name); for(j=0;j<3;j++)

printf("?",stu[i].score[j]); print("\\n"); }

4. 在上题的基础上,编写一个函数input,用来输入5个学生的数据记录。 解:

#define N 5 struct student {char num[6]; char name[8]; int score[4] }stu[N];

input(struct student stu[]) { int i,j;

for(i=0;i<N;i++) {

printf("input scores of student %d:\\n",i+1); printf("NO.:"); scanf("%s",stu[i].num);

printf("name: "); scanf("%s", stu[i].name); for(j=0;j<3;j++) {

printf("score%d:",j++);

scanf("%d", &stu[i].score[j]);} }

printf("\\n"); } }

5. 有10个学生,每个学生的数据包括学号、姓名、3门课的成绩,从键盘输入10个学生的数据,要求输出各学生3门课的平均成绩,然后按照平均成绩由高到低输出学生的信息(包括学号、姓名、3门课成绩、平均分数)。 解: #define N 10 struct student { char num[6]; char name[8]; int score[4]; float avr; }stu[N]; void main() {

int i,j,max,maxi,sum; float average; for(i=0;i<N;i++) {

printf("\\nInput scores of student %d:\\n",i+1); printf("NO.:"); scanf("%s",stu[i].num); printf("name: "); scanf("%s", stu[i].name); for(j=0;j<3;j++) {

printf("score%d:",j++);

scanf("%d", &stu[i].score[j]);} } }

average=0;max=0;maxi=0; for(i=0;i<N;i++) { sum=0; for(j=0;j<3;j++) sum+=stu[i].score[j]; stu[i].avr=sum/3.0;

average+=stu[i].avr;

if(sum>max) {max=sum; maxi=i;} }

average/=N;

printf("NO. name score1 score2 score3 average\\n"); for(i=0;i<N;i++) {

printf("%5ss",stu[i].num,stu[i].name); for(j=0;j<3;j++)

printf("?",stu[i].score[j]); printf("%8.2f\\n",stu[i].avr); }

printf("average=%6.2f\\n",average);

printf("The highest score is: %s,score total:%d.",stu[maxi].name,max); }

6. 13个人围成一圈,从第1个人开始顺序报号1、2、3。凡报到"3"者退出圈子。找出最后留在圈子中的人原来的序号。 解: #define N 13 struct person {int number; int nextop; }link[N+1]; void main() {

int i,count,h; for(i=1;i<=N;i++) {

if(i==N) link[i].nextp=1; else link[i].nextp=i+1; link[i].number=i; }

printf("\\n"); count=0; h=N;

printf("sequence that person2 leave the circle:\\n"); while(count<N-1) { i=0; while(i!=3)

搜索更多关于: C语言程序设计课后习题答案 的文档
  • 收藏
  • 违规举报
  • 版权认领
下载文档10.00 元 加入VIP免费下载
推荐下载
本文作者:...

共分享92篇相关文档

文档简介:

} 2. 写一个函数days,实现上面的计算。由主函数将年、月、日传递给days 函数,计算后将日子数传回主函数输出。 解: struct y_m_d {int year: int month; int day; }date; int days(struct y_m_d date1) { int sum; switch(date1.month) { case 1:sum=date1.day; break; case 2:sum=date1.day+31; break; case 3:sum=date1.day+59; break; case 4:sum=date1.day+90; brea

× 游客快捷下载通道(下载后可以自由复制和排版)
单篇付费下载
限时特价:10 元/份 原价:20元
VIP包月下载
特价:29 元/月 原价:99元
低至 0.3 元/份 每月下载150
全站内容免费自由复制
VIP包月下载
特价:29 元/月 原价:99元
低至 0.3 元/份 每月下载150
全站内容免费自由复制
注:下载文档有可能“只有目录或者内容不全”等情况,请下载之前注意辨别,如果您已付费且无法下载或内容有问题,请联系我们协助你处理。
微信:fanwen365 QQ:370150219
Copyright © 云题海 All Rights Reserved. 苏ICP备16052595号-3 网站地图 客服QQ:370150219 邮箱:370150219@qq.com