文档详情

C程序设计﹝谭浩强﹞课后习题答案选讲.ppt

发布:2017-05-01约5.14千字共16页下载文档
文本预览下载声明
Unit 11;11.2,写一个函数days,实现上面的计算。由主函数将年、月、日传递给days 函数,计算后将日数传回主函数输出。 ;case 8:sum=date1.day+212; break; case 9:sum=date1.day+243; break case 10:sum=date1.day+273; break case 11:sum=date1.day+304; break case 12:sum=date1.day+334; break } If((date1.year%4==0date1.year%100!=0||date1.year%400==0)date1.month=3 ) sum+=1; return sum; } void main() //定义主函数 { printf(“Input year,month,day:”); scanf(“%d,%d,%d”,date.year,date.month,date.day); printf(“\n”); printf(“%d/%d is the %dth day in %d.”,date.month,date.day,days(date),date.year); } 注意:在main函数中的printf函数用days(date)调用days函数,其返回值就是天数。 ;解法二: struct y_m_d //定义结构体 { int year: int month; int day; }date; void main() { int days(int,int,int);//对days函数的声明 int i,day_sum; printf(“Input year,month,day:”); scanf(“%d,%d,%d”,date.year,date.month,date.day); day_sum=days(date.year, date.month, date.day); printf(“%d/%d is the %dth day in d.”,date.month,date.day,day_sum,date.year); } Int days(int year,int month,int day) {int day_sum,i; int day_tab[12]={0,31,28,31,30,31,30,31,31,30,31,30,31}; day_sum=0;; for(i=1;imonth;i++) day_sum+=day_tab[i]; day_sum+=day; If((date1.year%4==0date1.year%100!=0||date1.year%400==0)date1.month=3 ) day_sum+=1; return day_sum; 11.5 ,有10个学生,每个学生的数据包括学号、姓名、3门课的成绩,从键盘输入10个学生的数据,要求输出3门课的总平均成绩,以及最高分的学生的数据(包括学号、姓名、3门课成绩、平均分) 解:N-S图如下图 变量说明: max:当前最好成绩;maxi:当前最好成绩对应的下标序号;sum:第i个学生的总成绩;;#define N 10 struct student {char num[6] char name[8] int score[4] float avr; }stu[N]; main() {int i,j,max,maxi,sum; float average; /*输入*/ for(i=0;iN;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;j3;j++) {printf(“score %d:”,j+1); scanf(“%d”, stu[i].score[j]); } } /*计算*/ average=0; max=0; maxi=0; for(i=0;iN;i++) {
显示全部
相似文档