C语言I博客作业11


这个作业属于那个课程 C语言程序设计II
这个作业要求在哪里 C语言I作业0011
我在这个课程的目标是 对于学过的内容,可以很熟练的进行编程,而且还可以看懂代码的每一步代表着什么意思,训练自己找错的能力
这个作业在那个具体方面帮助我实现目标 思维导图可以帮我建好学习框架,PTA的题目让我巩固知识点
参考文献 百度、《C Primer Plus》第六版,C语言程序设计

1.PTA实验作业

1.1题目名1

本题要求实现两个函数:一个函数判断给定正整数的各位数字之和是否等于5;另一个函数统计给定区间内有多少个满足上述要求的整数,并计算这些整数的和。

1.1.1数据处理

数据表达:第一个函数定义了两个整型变量:num1,sum,并且给sum赋值为0;第二个函数定义了3个整型变量:count,sum2,i,并且给count、sum赋值为0
数据处理:

int is( int number )
定义num1和sum两个变量
sum=0;
用do-while循环{
     num1=number%10;
     sum=sum+num1;
     number=number/10;
}终止条件是number等于0
然后用if-else语句判断{
      if(sum==5)
         return 1;
      else
         return 0;
}

void count_sum( int a, int b )
定义count、sum2、i三个变量
count=0;
sum=0;
用for循环语句,里面包含一个if语句
for(i=a;i<=b;i++){
		if(is(i)){
			count++;
			sum2=sum2+i;
                 }
}
如果满足第一个函数就进行累加,否则就不执行
最后输出结果:printf("count = %d, sum = %d",count,sum2);

1.1.2实验代码截图


1.1.3造测试数据

输入数据 输出数据 说明
104 999 104 is counted. count = 15, sum = 3720 例题上的数据
5 60 5 is counted. count = 6, sum = 165 随机输入的数据进行测试
1000 1999 count = 15, sum = 17220 随机输入的数据进行测试
10 30 count = 2, sum = 37 随机输入的数据进行测试

1.1.4PTA提交列表及说明


1.运行超时:我开始用的while循环,用DevC++测试发现一直循环,而且根据题目发现要用do-while循环
2-4多种错误:改了几次才知道是第二个函数中间函数出了问题,于是把第二段函数全删了,重新弄(有过忘记打上计数的代码、忘记给变量赋值)
5.格式错误:在答案输出的那里等号两边要空格

1.2 题目名2

本题要求实现一个函数,判断任一给定整数N是否满足条件:它是完全平方数,又至少有两位数字相同,如144、676等

1.2.1 数据处理

数据表达:定义了i, a[100],b, count,j五个变量,其中a[100]是数组,都是整型变量,给count赋值为0,令i=N、b=sqrt(i)(开根号);
数据处理:

int IsTheNumber(const int N)
定义i, a[100],b, count,j;
count=0;
i = N;
b = sqrt(i);

if (b*b==i)
   while(i>0)
      a[count]=i%10;
      i=i/10;
      for (j = 0; j < count; j++)
	{
		if (a[count] == a[j])
	         return 1;
	}
这里开始判断是否是完全平方数,中间有判断是否有两个数字是一样的,就是用数组储存每次计算的结果,然后进行比较是否相等
count++;
然后返回程序

1.2.2 实验代码截图

输入数据 输出数据 说明
105 500 cnt = 6 例题上的数据
140 463 cnt = 4 随机输入的数据进行测试
501 666 cnt = 0 随机输入的数据进行测试
668 999 cnt = 2 随机输入的数据进行测试

1.2.4 PTA提交列表及说明


因为要用到数组这个知识点,所以现在Devc++上测试,直达对了才誊到上面来,我来说说思路:这个题目其实想了很久,因为确实不知道怎么下手,后来觉得用数组会更简单,但因为这个知识点上课还没有讲到,所以不确定能不能用,但是不用数组的话我又想不出,所以最后决定还是用数组,数组可以用来储存数据,所以每算一次,我就储存在数组中,然后进行比较,看是否有相同的数,如果有,就返回计数。用数组解决这个问题简单了很多,我现在还没有想到不用数组怎么做,如果有知道的话,可以告诉我吗?

2.代码互评

2.1同学代码截图(计科3班李双同学)


2.2自己代码截图


2.3比较结果

1.我们采用的方法不一样,她采用了数组的方法,我没有,我就是用都-while语句来进行计算
2.我们只是计算的方式那里有一点不一样,其余的判断和求累积和是差不多的,两个方法都可以,看自己的习惯吧

2.4同学代码截图(计科1班李泽基同学)

2.5自己代码截图


2.6比较结果

1.这一题我是做了很久也没有做出来,问了同学才知道要用宏这个知识点要判断误差,这个是同学教我做的,而他没有用宏这个知识点,这点我很佩服他
2.我相信他一定做了很久,这个代码我要向他学习,他没有用我们没学过的知识点做出来了,我要多向他请教
3.学习总结

3.1 学习进度条(5分)

周/日期 这周所花的时间 代码行 学到的知识点简介 目前比较迷惑的问题
第一周(9.19-3.27) 6天 26行 Hello world编程和Markdown语法 现在没有疑惑
第二周(9.25-10.4) 4天 45行 华氏度与摄氏度的转换 对于变量的类型还不是很懂
第三周(10.8-10.11) 3天 大约100行左右 计算分段函数和学习if-else语句 对于if-else语句还是不那么熟练
第四周(10.15-10.17) 3天 大约75行左右 for循环语句和指定次数的循环程序设计 关于指定次数的循环程序设计还不是很清楚
第五周(10.22-10.25) 4天 大约110行左右 使用自定义函数来编程和生成乘方表和阶乘表 关于自定义函数的编程的细节还是不太懂
第六周(10.29-11.1) 4天 大约120行左右 运用分支结构编程、字符型数据、逻辑运算符 对于逻辑运算符还不是很清楚,有一点点懵
第七周(11.6-11.8) 3天 大约150行左右 运用switch语句来编程 现在感觉没有什么疑惑点,可能还没发现
第八周(11.12-11.15) 3天 大约200行左右 进一步学习循环结构,学习了while和do-while语句 目前还没有发现什么疑惑点
第九周(11.19-11.22) 3天 大约170行左右 学习了break语句和continue语句的用法以及嵌套循环 可能是刚学,在做PTA不是很熟练
第十周(11.26-11.28) 2天 大约185行 对之前学过的循环结构进行了总结 暂时还没有发现问题
第十一周(12.3-12.5) 3天 大约200行 进一步学习了函数,以及局部变量和全局变量 今天讲的比较快,有点懵的感觉,自己还需要时间去消化

3.2 累积代码行和博客字数(5分)

3.3 学习内容总结和感悟(5分)

3.3.1 学习内容总结





3.3.2 学习体会

本学期的C语言的最后一节新课落下了帷幕,时间真的好快,一下子就要考试了,记得从最开始敲代码时的崩溃到后面慢慢的习惯,这一个学期还是收获了很多,虽然中间的路并不平坦(可以说很艰难哈哈),但我还是坚持下来了,并且我也完成了,虽然还是有瑕疵,但我相信自己会慢慢改正的,我也会变得越来越好。本学期虽然结束了,但我们的学习之路还没有结束,我们这个专业是要不断学习的,所以不能放松,下周就会有考试,加油啦!

原文地址:https://www.cnblogs.com/pengqijia/p/11976449.html