C语言I博客作业07

||
-|-|
这个作业属于那个课程|C语言程序设计II
这个作业要求在哪里|作业要求
我在这个课程的目标是|会使用c语言进行编程序
这个作业在那个具体方面帮助我实现目标|写PTA作业,帮助自己进行总结
参考文献|伪代码

1.PTA实验作业

1.1计算天数

本题要求编写程序计算某年某月某日是该年中的第几天。

输入格式:

输入在一行中按照格式“yyyy/mm/dd”(即“年/月/日”)给出日期。注意:闰年的判别条件是该年年份能被4整除但不能被100整除、或者能被400整除。闰年的2月有29天。

输出格式:

在一行输出日期是该年中的第几天。

输入样例1:

2009/03/02

输出样例1:

61

输入样例2:

2000/03/02

输出样例2:

62

1.1.1数据处理

数据表达:定义整型变量year, month, day1, day2, i, sum,year、month、day1为输入的年月日,day2为每月的天数,sum为今年的第多少天
数据处理

#include<stdio.h>
int main()
{
	int year, month, day1, day2, i, sum = 0;
	输入年月日
	for (当i>month循环结束)
	{
		switch (i)
		{
                case 1:case 3:case 5:case 7:case 8:case 10:case 12:
		1、3、5、7、9、8、10、12月的天数为31天;
			break;
                case 4:case 6:case 9:case 11:
		4、6、9、11月的天数为30天;
			break;
                case 2:
		2月的天数
			if (是不是闰年)
			{
                                闰年2月为29天;
			}
			else
			{
                                平年2月为28天;
			}
			跳出;
		}
		把每个月的天数进行累加;
	}
	输出这个日期是那一年的第几天;
}

1.1.2实验代码截图

1.1.3 造测试数据

输入数据 输出数据 说明
2009/03/02 61 平年
2000/03/02 62 闰年
2100/03/02 61 平年

1.1.4 PTA提交列表及说明

提交列表说明:
答案错误:少加了输入的天数,在计算完月份的天数后忘记加输入的天数了。
改正:在最后输出里加上day1。

1.2 整数的分类处理

给定 N 个正整数,要求你从中得到下列三种计算结果:

  • A1 = 能被 3 整除的最大整数
  • A2 = 存在整数 K 使之可以表示为 3K+1 的整数的个数
  • A3 = 存在整数 K 使之可以表示为 3K+2 的所有整数的平均值(精确到小数点后 1 位)

输入格式:

输入首先在第一行给出一个正整数 N,随后一行给出 N 个正整数。所有数字都不超过 100,同行数字以空格分隔。

输出格式:

在一行中顺序输出 A1、A2、A3的值,其间以 1 个空格分隔。如果某个数字不存在,则对应输出NONE

输入样例1:

8
5 8 7 6 9 1 3 10

输出样例1:

9 3 6.5

输入样例2:

8
15 18 7 6 9 1 3 10

输出样例2:

18 3 NONE

1.2.1数据处理

数据表达:定义整型变量N, i, n, number,A,输入N确定输入N个整数,i为循环条件,n为输入的整数,number用于switch的条件,定义A1,A2为整型,A3为浮点型,A用于确定符合A3条件的个数,定义字符型ch为NONE
数据处理

#include<stdio.h>
int main()
{
	int N, i, n, number, A1 = 0, A2 = 0, A = 0;
	double A3 = 0;
	char ch[] = "NONE";
	输入N;
	for (循环直到i>=n)
	{
		输入n;
		if (条件A1)
		{
			number = 1;
		}
		else if (条件A2)
		{
			number = 2;
		}
		else if (条件A3)
		{
			number = 3;
		}
		switch (number)
		{
		case 1:条件A1成立
			if (n > A1)
			{
				A1 = n;
			}
			break;
		case 2:条件A2成立  A2++; break;
		case 3:条件A3成立  A3 += n; A++; break;
		}
	}
	分别输出A1 A2 A3/A,如果条件不成立就输出"NONE"

1.1.2实验代码截图

1.1.3 造测试数据

输入数据 输出数据 说明
8 5 8 7 6 9 1 3 10 9 3 6.5 符合A1,A2,A3条件的数都有
8 15 18 7 6 9 1 3 10 18 3 NONE 没有符合A3条件的数
1 6 6 NONE NONE 只有A1符合条件
1 4 NONE 1 NONE 只有A2符合条件
1 5 NONE NONE 5.0 只有A3符合条件

1.1.4 PTA提交列表及说明

部分正确:在最后输出时出错了,A2不成立时输出NONE后面没有空格。
改正:printf("%c", ch),在%c后面加个空格。

2.代码互评

同学代码截图

自己代码截图

1.他的代码直接是直接把到每个月多少天算了出来,自己算的天数。
2.我是定义每个月的天数,然后进行累加,我们写程序就是要交给计算机去计算,而他却是自己算出来的,舍本逐末了。
3.我们写程序就是为了偷懒,肯定是怎么简便怎么来,能偷懒就偷懒。

同学代码截图

自己代码截图

1.这位同学的代码用了数组来写,直接把分数存到了数组里,这位同学能够自学数组,赶到老师前面。
2.他跟我的代码计算A1,A2,A3的条件是反过来的,他是把余数求出来,我是把条件里的数减去在求余。
3.其他的思路都差不多,但的if-else语句后面A1=A1就有点多余了。

3.学习总结

3.1 学习进度条

3.2 累积代码行和博客字数

3.3 学习内容总结和感悟

3.3.1 学习内容总结

3.3.2 学习体会

这周学的时switch语句,属于分支结构,这个语句我之前已经自学了,这次做作业非常顺手,现在不理解的地方主要在后面,对于只能和结构体比较疑惑,整个学了一遍,但学完后感觉还是不懂,不会用。学了这么多,写题目感觉还是好吃力,学会了语法,写题目也就是那几个语法但就是不会写,写题目就跟做数学题一样,主要还在于找不找得到其中的关系,要有那个逻辑思维。

posted @ 2019-11-07 16:36  ahhhhhhhhhhhhhh  阅读(376)  评论(1编辑  收藏  举报