问题 | 回答 |
---|---|
这个做业属于那个课程 | C语言程序设计II |
这个做业要求在哪里 | C语言I做业07 |
我在这个课程的目标是 | 本身设计一个小游戏 |
这个做业在那个具体方面帮助我实现目标 | 在PTA题目中屡次使用switch语句 |
参考文献 | C语言程序设计,百度文献 伪代码1 伪代码2 |
输入格式:
输入在一行中按照格式“yyyy/mm/dd”(即“年/月/日”)给出日期。注意:闰年的判别条件是该年年份能被4整除但不能被100整除、或者能被400整除。闰年的2月有29天。学习
输出格式:
在一行输出日期是该年中的第几天。测试
输入样例1:.net
2009/03/02设计
输出样例1:3d
61code
输入样例2:htm
2000/03/02blog
输出样例2:游戏
62事件
#include <stdio.h> int main() { int year,month,day; 输入年月日 if(year%4==0&&year%100!=0||year%400==0)/* 判断是否是闰年*/ { /* 是闰年*/ switch(month) { case 1:printf("%d\n",day);break; /* 闰年1月*/ case 2:printf("%d\n",31+day);break; /* 闰年2月*/ case 3:printf("%d\n",60+day);break; /* 闰年3月*/ case 4:printf("%d\n",91+day);break; /* 闰年4月*/ case 5:printf("%d\n",121+day);break; /* 闰年5月*/ case 6:printf("%d\n",152+day);break; /* 闰年6月*/ case 7:printf("%d\n",182+day);break; /* 闰年7月*/ case 8:printf("%d\n",213+day);break; /* 闰年8月*/ case 9:printf("%d\n",244+day);break; /* 闰年9月*/ case 10:printf("%d\n",274+day);break; /* 闰年0月*/ case 11:printf("%d\n",305+day);break; /* 闰年11月*/ case 12:printf("%d\n",335+day);break; /* 闰年12月*/ } } else /* 不是闰年*/ { switch(month) { case 1:printf("%d\n",day);break; /* 平年1月*/ case 2:printf("%d\n",31+day);break; /* 平年2月*/ case 3:printf("%d\n",59+day);break; /* 平年3月*/ case 4:printf("%d\n",90+day);break; /* 平年4月*/ case 5:printf("%d\n",120+day);break; /* 平年5月*/ case 6:printf("%d\n",151+day);break; /* 平年6月*/ case 7:printf("%d\n",181+day);break; /* 平年7月*/ case 8:printf("%d\n",212+day);break; /* 平年8月*/ case 9:printf("%d\n",243+day);break; /* 平年9月*/ case 10:printf("%d\n",273+day);break; /* 平年10月*/ case 11:printf("%d\n",304+day);break; /* 平年11月*/ case 12:printf("%d\n",334+day);break; /* 平年12月*/ } } return 0; }
输入数据 | 输出数据 | 说明 |
---|---|---|
2019/11/06 | 310 | 今日日期,31+28+31+30+31+30+31+31+30+31+6=310 |
2018/03/05 | 64 | 非闰年,31+28+5=64 |
2004/05/05 | 126 | 闰年,31+29+31+30+5=126 |
提交列表说明:
答案错误:输入格式错了,忘记在%d之间加。
大于等于90分为A;
小于90且大于等于80为B;
小于80且大于等于70为C;
小于70且大于等于60为D;
小于60为E。
输入格式:
输入在第一行中给出一个正整数N(≤1000),即学生人数;第二行中给出N个学生的百分制成绩,其间以空格分隔。
输出格式:
在一行中输出A、B、C、D、E对应的五分制成绩的人数分布,数字间以空格分隔,行末不得有多余空格。
输入样例:
7
77 54 92 73 60 65 69
输出样例:
1 0 2 3 1
#include <stdio.h> int main() { int n,i,grade,w; int A←0,B←0,C←0,D←0,E←0; 输入学生人数 if(n>0) /*学生人数大于0时*/ { for(i=1;i<=n;i++) { scanf("%d",&grade);/*输入学生成绩*/ w=grade/10; /*取分数第一位数以便事件的常量表达*/ switch(w) { case 10:A++;break; /*大于等于90分*/ case 9:A++;break; /*大于等于90分*/ case 8:B++;break; /*小于90且大于等于80*/ case 7:C++;break; /*小于80且大于等于70*/ case 6:D++;break; /*小于70且大于等于60*/ default:E++;break; /*小于60*/ } } } printf("%d %d %d %d %d",A,B,C,D,E); return 0; }
输入数据 | 输出数据 | 说明 |
---|---|---|
5\n 55 66 77 88 99 | 1 1 1 1 1 | 分别为A B C D E |
5\n 96 100 88 76 0 | 2 1 1 0 1 | 分别为A B C D E |
6\n 23 61 70 80 90 60 | 1 1 1 2 1 | 临界值 |
答案错误: scanf("%d",& grade);输出放在for语句前,没能实现循环。
1,咱们变量不同,他他变量多几个,个人少几个。
2咱们代码差异很大,他的是在for语句中循环,个人刚是把十个月都列出来了,我这方法比较笨,一看他代码顿悟了,本身当时怎么想到。
3,个人代码行比他的长多了,他的方法值得我学习。
周/日期 | 这周所花的时间 | 代码行 | 学到的知识点简介 | 目前比较迷惑的问题 |
---|---|---|---|---|
11.4~11.10 | 12h | 232 | 熟悉多分支结构switch语句的使用 | 在博客园中如何添加小挂饰 |
本周学习了多分支结构switch语句,当常量表达式所表达的量与其中一个case语句中的常量相符时,就执行此case语句后面的语句,并依次下去执行后面全部case语句中的语句,除非遇到break;语句跳出switch语句为止。若是常量表达式的量与全部case语句的常量都不相符,就执行default语句中的语句并跳出switch语句。本周PTA第三题若是不限语句,那很容易的,这题我想了好久,在书上看到了for语句中加switch语句才恍然大悟,又学习了一个语句,仍是蛮开心的,switch语句做用也很大,不过第一题只记着用switch语句,忘了也能用for语句,想把C语言学好,设计一个小游戏仍是蛮难的,不过我会努力的。