C语言I博客作业07

一.表格

这个作业属于哪个课程 C语言程序设计II
这个作业要求在哪里 https://edu.cnblogs.com/campus/zswxy/CST2019-1/homework/9935
我在这个课程的目标是 把C语言学精,熟练掌握编程技术,努力找到简单代码的写法
这个作业在哪个具体方面帮助我实现目标 PTA上做题,devc++慢慢掌握调试,熟练使用WPS做图形
参考文献 百度百科,其他同学作业,《C Primer Plus》,教科书

二.本周作业

1.PTA实验作业

1.1

题目内容描述:计算天数:本题要求编写程序计算某年某月某日是该年中的第几天。

1.1.1数据处理
  • 数据表达:i,y,m,d,sum(变量);运算,赋值(怎么来);int(整型)
  • 数据处理:
#include<stdio.h>

int main ()
{
    int i,y,m,d,sum;//定义年,月,日为整型
    scanf("%d/%d/%d",&y,&m,&d);//输入年,月,日
    sum=d;//把天数赋值给sum
    for(i等于1;i小于月份;i一直加1){//如果i大于等于月份就退出循环
    	switch(i){
    		case 1:case 3:case 5:case 7:case 8:case 10:case 12://数字表示月份
    			sum=sum+31;break;//当i等于1,3,5,7,8,10,12之中时,结果等于累加的sum,跳出循环
    		case 4:case 6:case 9:case 11:
    			sum=sum+30;break;//当i等于4,6,9,11之中时,结果等于累加的sum,跳出循环
    		case 2:if((y%4==0&&y%100!=0)||(y%400==0))//判断是否为闰年:年份除以4余数为0并且除以100余数不为0或者除以400余数为0
    		sum=sum+29;//2月有29天
    		else//不是闰年
    		sum=sum+28;//2月有28天
		}
	}
	printf("%d",sum);//输出switch语句总sum的值
	
	return 0//程序结束
} 
1.1.2实验代码截图

1.1.3造测试数据
输入数据 输出数据 说明
2002/3/02 61 题目样例
2000/3/02 62 题目样例
2012/12/31 366 闰年
2019/12/31 365 不是闰年
1.1.4PTA提交列表及说明

编译错误:刚开始不知道switch语句用法;看了书之后便会了
部分错误:试了一下用数组写,发现数组里面的不在范围内;我还不熟,还是老老实实用学过的
部分错误:没有认真看题目。
答案错误:月份的大小弄反了
答案错误:输出加了一个&;把&删了

1.2

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

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

数据表达:N,k,A1,A2,i,num,c,A3,sum(变量);赋值,运算(如何来);int(整型);double(浮点型)就A3,sum为浮点型
数据处理:

#include<stdio.h>
int main ()
{
	int N,k,A1=0,A2=0,i,num,c=0;//定义i,N,k,A1,A2,i,num,c为整型;其中0赋值给A1,A2,c
	double A3,sum=0;//定义A3,sum为浮点型;0赋值给sum
	scanf("%d",&N);//输入个数N
	for(i等于1;i小于等于N;i一直加1){//直到i大于N,跳出循环
		scanf("%d",&num); //输入数
	 switch(num%3){//数除以三
	 	case 0:if(num>A1)
	 	A1=num;break;//如果余数等于0,并且数比A1大,数的值赋给A1,跳出循环
	 	case 1:A2++;break;//余数为1,A2一直加1,不等于1,跳出循环
	 	case 2:c++;sum=num+sum;A3=sum/c;break;//余数为2,c一直加1,sum等于数+sum,A3为平均数,不满足便跳出循环
	 }
}    
     if(A1==0)
     printf("NONE ");//如果A1等于0,输出NONE
     else
     printf("%d ",A1);//相反便输出A1
     if(A2==0)
     printf("NONE ");//如果A2等于0,输出NONE
     else
     printf("%d ",A2);//相反便输出A2
     if(c==0)
     printf("NONE");//如果c等于0,输出NONE
     else
     printf("%.1f",A3);//相反便输出A3
     return 0;//程序结束
}
1.2.2实验代码截图


1.1.3造测试数据
输入数据 输出数据 说明
8(空一行)5 8 7 6 9 1 3 10 9 3 6.5 使用题目样例
8(空一行)15 18 7 6 9 1 3 10 18 3 NONE 使用题目样例
7(空一行)1 3 5 7 9 11 13 9 3 8.0 随便打7个数
6(空一行)1 1 1 2 2 2 NONE 3 2.0 打出重复数
1.1.4PTA提交列表及说明

多种错误:第一次出现这种错误,emmm,这个是代码错误和答案错误;我把switch语句一些调了出来,便不是了
部分错误:条件没看清楚;把A1,A2,c赋值为0
答案错误:我定义sum,c都为整型;必须一个为浮点型不然不能显示小数
编译错误:没认真检查,输出加了个&;删除&

2.代码互评

2.1.1 同学代码截图(石柯同学)

2.1.2自己代码截图

  • 我们的不同之处.
  • 她定义的变量比我少
  • 她用if-else结构先判断满足分数的个数,然后再用switch结构输出满足的值;我是直接输入分数除以10,然后直接带入switch结构,带入满足的语句算出个数。
  • 她的代码很清晰,我的代码较简单

2.2.1同学代码截图(刘彦同学)

2.2.2自己代码截图

  • 我们的不同之处.
  • 他用了switch分开判断闰年总天数,和不是闰年总天数
  • 他的代码看着像个阶梯有点多,不过这份代码一下子就能理解,我的代码比较简单
  • 他对switch语句运用的挺好,这点我应该向他学习

3.学习总结

3.1学习进度条

周/日期 这周所花的时间 代码行 学到的知识点简介 目前比较迷惑的问题
七/5/11-8/11 三天 140 switch语句用法 如果x为浮点型,y,z为整型为什么x=y/z答案不对
六/28/10-2/11 3天 130 嵌套if-else语句,格式以及如何应用 不太清楚Devc++怎么调试
五/22/10-25/10 3天 100 用法如何定义函数,格式以及如何应用 暂时没有
四/15/10- 18/10 3天 80 循环结构,流程图,数学函数 数学公式的表达,为什么整数除以变量有一个要用括号括起来还要乘以1.0
三/9/10-13/10 3天 70 f-else,&&用法,字母%用法,数学函数 PTA每次答案错误,都十分难找出来。不得已重打

3.2累计代码行和博客字数

3.3学习内容总结和感悟

3.3.1学习内容总结

3.3.2学习体会
  • 这周学了switch语句,break用法,一大节课不能讲很多内容,但课上的内容真的很容易学
  • 这周去ATD课程学了一下数组和?:的用法,不过还是只知道一些皮毛,但我对于c语言理解更深了。
  • 题目不难,但刚用switch还是有些乏力,不过经过书籍以及百度,我已经理解了用法,而且可以【case 常量:case 常量:】一直下去
  • Devc++调试可能我还是不会,我很好奇:?:是不是等于if-else语句

posted on 2019-11-07 23:22  李政委  阅读(228)  评论(3编辑  收藏  举报

导航