C语言I博客作业07

一、本周教学内容&目标
第3章 分支结构 3.1-3.2 使学生熟悉多分支结构、字符型数据类型和逻辑运算符。
二、本周作业头

问题 答案
这个作业属于那个课程 C语言程序设计II
这个作业要求在哪里 https://edu.cnblogs.com/campus/zswxy/2019TA/homework/9927
我在这个课程的目标是 掌握字符型数据类型以及了解逻辑运算符的优先级
这个作业在那个具体方面帮助我实现目标 练习markdown语法以及自主寻找资料的能力
参考文献 百度 博客

三、本周作业##

1. PTA作业###

**1.1 7-13 整数的分类处理 **.

1.1.1 数据处理

  • 数据表达:提出整形A1,A2,浮点型A3,提出的number[101]用于存储输入的正整数,count作为计数器记录符合A3条件的正整数个数,i用于for循环,n表示将要输入的正整数个数;

  • 数据处理:

#include<stdio.h>

int main(void)
{
	int n, i, A2 = 0, A1 = 0;
		//提出整形的A1,A2并赋值为0
	double A3 = 0;
		//提出浮点型来存储平均值
	int number[101];
		//提出数组来存储给的N个正整数
	int count=0;
		//用于计算A3是由多少个值相加而来

	scanf("%d
", &n);
		// 输入将要输入多少正整数
	for (i = 0; i < n; i++)
		// 进行循环
	{
		scanf("%d", &number[i]);
			//	输入正整数
		if ((number[i] % 3 == 0) && (number[i] > A1))
			// 判断能否被3整除,并且进行比较
		{
			A1 = number[i];
				// 找出符合A1条件的最大值
		}
		else;
		switch ((number[i]-1)%3)
			// 取余
		{
		case 0:
				A2++;
					// 为0符合A2条件,使A2加一
		default:
			break;
		}

		switch ((number[i]-2)%3)
			// 取余
		{
		case 0:
			A3 += number[i];
				// 符合A3的正整数相加得到和
			count++;
				// 符合 A3条件的正整数的个数
		default:
			break;
		}
	}
	if (count != 0)
		// 判断存在不存在A3条件的正整数
	{
		A3 = A3 / count;
			//	存在就得到平均数
	}
	switch (A1)
	{
	case 0:
		printf("NONE ");
			// 判断符合A1的正整数存在否
		break;
	default:
		printf("%d ",A1);
			// 存在就输出A1
		break;
	}
	switch (A2)
	{
	case 0:
		printf("NONE ");
			// 判断符合A2的正整数存在不
		break;
	default:
		printf("%d ",A2);
			// 存在输出A2
		break;
	}
	if (A3 == 0)
			//判断A3存在正整数不
		printf("NONE");
	else
		printf("%.1f", A3);
			//并进行相应的反应操作

	return 0;
}

1.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.1.3 造测试数据

输入数据 输出数据 说明
3 1 2 3 3 1 2.0 随机输入
3 4 7 10 NONE 3 NONE 输入正整数都符合A2
2 5 8 NONE NONE 6.5 输入正整数都符合A3
3 3 6 9 9 NONE NONE 输入正整数都符合A1

1.1.4 PTA提交列表及说明

1.部分正确:未得到平均值,只是得到了总和,添加count计数参与相加的正整数个数,让总和除以count来得到平均值;
2.部分正确:同上(出现这个答案错误是因为我想查看提交结果)
3.答案正确:....

**1.2 7-10 计算天数 **.

1.2.1数据处理

  • 数据表达:提出用于输入年月日的整形year,month,day,以及来计算天数的整形sum;
  • 数据处理:
#include<stdio.h>

int main()
{
	int year = 0, month = 0, day = 0;
		// 提出年月日
	int sum = 0;
		// 计算天数

	scanf("%d/%d/%d", &year, &month, &day);
		// 输入年月日

	if (year % 4 == 0 && year % 100 != 0 || year % 400 == 0)
		// 判断闰年
	{
		switch (month)
			// 通过月来判断
		{
		case 12:
			sum += 30;
		case 11:
			sum += 31;
		case 10:
			sum += 30;
		case 9:
			sum += 31;
		case 8:
			sum += 31;
		case 7:
			sum += 30;
		case 6:
			sum += 31;
		case 5:
			sum += 30;
		case 4:
			sum += 31;
		case 3:
			sum += 29;
		case 2:
			sum += 31;

				//sum来计算天数
		default:
			break;
		}
	}
	else
			// 非闰年的操作
	{
		switch (month)
		{
		case 12:
			sum += 30;
		case 11:
			sum += 31;
		case 10:
			sum += 30;
		case 9:
			sum += 31;
		case 8:
			sum += 31;
		case 7:
			sum += 30;
		case 6:
			sum += 31;
		case 5:
			sum += 30;
		case 4:
			sum += 31;
		case 3:
			sum += 28;
		case 2:
			sum += 31;

		default:
			break;
		}
	}

	sum = sum + day;
		// 加上当前月份的天数
	printf("%d", sum);
		// 输出天数

	return 0;
}

1.2.2 实验代码截图

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

输入格式:####

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

输出格式:####

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

输入样例1:####

2009/03/02

输出样例1:####

61

输入样例2:####

2000/03/02

输出样例2:####

62

1.2.3 造测试数据

输入数据 输出数据 说明
2046/11/26 330 随机进行测试
2012/02/29 60 闰年且二月第29天
2011/10/29 302 非闰年
1999/09/24 267 非闰年

1.2.4 PTA提交列表及说明

1.编译错误:尝试使用C++,结果PTA不支持,他们说是老师进行了限制,后改为C;
2.编译错误:本想加个stdio.h,再把输出改一下就行了,结果,编译不允许iostream存在;后删掉;
3.答案正确:....

2. 代码互评###

同学代码1:

同学代码2:

我的代码:

与第一份代码进行对比:同:都进行判断是否符合A1,A2,A3的条件(都是用取余来进行判断),并进行相关的操作;不同:他只是使用了一个非常小的switch来写了一点A3的判断;而我大多数使用switch进行A1,A2,A3的判断,而且我个人认为我的后面输出时写的比他的更加好一点;

与第二份进行对比:同:都是用switch来进行判断,通过余数来分别进行相应操作;不同:他的switch更加简便,一个switch导出了A1,A2,A3的一些结果,再通过输出过程中进行一些操作,来完善,而我的比较麻烦,但是我的输出的编写个人认为较他的更好,而且他的格式没我完善,但是他的那个switch用的好,我没想到,我的时分开的;

3. 学习总结###

3.1 学习进度条.

周/日期 这周所花时间 代码行 学到的知识点简介 目前比较迷惑的问题
第七周 9小时 513 定义函数 return的返回位置
第八周 12小时 467 局部变量与全局变量 暂无
第九周 12小时 483 数组 暂无
第十周 14小时 723 指针 暂无
第十一周 15小时 832 结构 暂无

3.2 累积代码行和博客字数.

3.3思维导图

3.3.1 学习内容总结与体会
本周结束了指针的学习,并了解了结构与C++类;指针指向地址,通过找寻地址来提出内容,&是取地址符,指针是不可以直接赋值的,原因在于,指针指向地址,输入可能会改变系统自带的一些数据,导致系统出现错误,所以指针直接赋值时不正确的;
学习仍在进行中,但是感觉与别人落后很多,而且感到直接的进度缓慢,是需要进行时间的规划,来使自己更加的高效化;也在进行这VS使用方面的学习,DEV暂时大概时不想用了,显示的方面太差,字体不好,但是使用VS也时常出现一些问题,也正在解决,总之,还行吧,感觉;

原文地址:https://www.cnblogs.com/lpen/p/11765807.html