C语言的题

1个回答
展开全部
摘要 #includestruct dateType { int year; int month; int day; };int days( struct dateType );int main() { struct dateType date; printf("Please input Y,M,D\n"); scanf("%d,%d,%d", &date.year, &date.month,&date.day); printf("\n%d -%d - %d is the %d days\n", date.year, date.month, date.day, days(date)); return 0; } int days( struct dateType Mydate) { int i, day_sum = 0; int day_tab[13] = {0, 31, 28, 31, 30, 31, 30, 31, 31, 30, 31,30, 31}; for(i = 1; i < Mydate.month; i++) day_sum += day_tab[i]; day_sum += Mydate.day; if(((Mydate.year % 4 == 0 && Mydate.year % 100 != 0) || Mydate.year % 400 == 0) && (Mydate.month == 2)) day_sum += 1; return day_sum; }
咨询记录 · 回答于2023-06-21
C语言的题
两道改错题
您好,亲,第一题这里有几个错误:①p定义为struct person* 类型,应为struct person 类型。②访问struct 成员时用 . 号,而不是 -> 号。③i的起始值应为0,终止值应为2。修改后的代码:
#include struct person { char name[20]; int age; }some[]={{"张立",20},{"杨帆",21},{"马小林",18}};int main(){ int i; struct person p; for(i=0;i<3;i++) { if( p.age < some[i].age) p = some[i]; } printf("%s \n%d\n",p.name,p.age ); return 0; }
第二题这里有几个错误:scanf时应传入date作为参数,而不是&date。day_tab 数组下标应从1开始。if 条件判断应包括 month=2 的情况。修改后的代码:
#includestruct dateType { int year; int month; int day; };int days( struct dateType );int main() { struct dateType date; printf("Please input Y,M,D\n"); scanf("%d,%d,%d", &date.year, &date.month,&date.day); printf("\n%d -%d - %d is the %d days\n", date.year, date.month, date.day, days(date)); return 0; } int days( struct dateType Mydate) { int i, day_sum = 0; int day_tab[13] = {0, 31, 28, 31, 30, 31, 30, 31, 31, 30, 31,30, 31}; for(i = 1; i < Mydate.month; i++) day_sum += day_tab[i]; day_sum += Mydate.day; if(((Mydate.year % 4 == 0 && Mydate.year % 100 != 0) || Mydate.year % 400 == 0) && (Mydate.month == 2)) day_sum += 1; return day_sum; }
下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消