zoukankan      html  css  js  c++  java
  • C语言I博客作业07

    这个作业属于那个课程
    这个作业要求在哪里
    我在这个课程的目标是
    这个作业在那个具体方面帮助我实现目标
    参考文献

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

  • 相关阅读:
    HDU 4291 A Short problem 第37届ACM/ICPC 成都赛区网络赛1004题 (找规律,取模求循环节)
    POJ 1276 Cash Machine(多重背包)
    HDU 4296 Buildings 第37届ACM/ICPC 成都赛区网络赛1009题 (贪心)
    POJ 2392 Space Elevator (多重背包)
    Mysql配置SSL
    error C2471: cannot update program database vc90.pdb
    Android 总结 转载
    MAX SDK的INode的变换矩阵,以及Object的一些常识
    C++游戏开发需要阅读的书籍
    游戏程序员养成计划
  • 原文地址:https://www.cnblogs.com/laotun/p/11808336.html
Copyright © 2011-2022 走看看