>

C语言l|博客园作业11

这个作业属于哪个课程 C语言程序设计II
这个作业要求在哪里 链接
我在这个课程的目标是 掌握C语言以及熟练运用
这个作业在哪个具体方面帮助我实现目标 询问同学,百度,vs2019上的报错
参考文献 链接

1.1 题目名

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

1.1.1数据处理

整型变量:int IsTheNumber(const int N)
{
int m,n,i,j;
n=N;
m=(int)sqrt(N);//将平方数开方

if (m*m==n)//判断是否是平方数
{
    int f[10]={0};//取0-9的数作为位数,用数组作为表头
    while (n>0)
    {
       j=n%10;//取个位数
       for (i=0;i<=9;i++)
       {
           if (j==i)
           {
               f[i]++;//如果取的个位数与i相等,就在数组对应的表头那里都加一
               if (f[i]>1)//题目上说至少两个相等的数,则大于一就ok
               {
                  return 1;//返回1
               }
           }

       }
       n/=10;//取下一位数
    }
    return 0;//返回0
    
}
return 0;

}

1.1.2实验代码截图

1.1.3 造测试数据

输入数据 输出数据 说明
105 500 cnt=6 样例
100 1000 cnt=9 说明,正确
400 800 cnt=4 说明,正确
1.1.4 PTA提交列表及说明

  • 编译错误:开根号那里把int写在了m前面,但应该sqrt前面()加上。
  • 部分正确:最后判断的时候用break,但题目要求要返回1.

1.2 题目2

6-2 统计各位数字之和是5的数
本题要求实现两个函数:一个函数判断给定正整数的各位数字之和是否等于5;另一个函数统计给定区间内有多少个满足上述要求的整数,并计算这些整数的和。
函数is判断number的各位数字之和是否等于5,是则返回1,否则返回0。
函数count_sum利用函数is统计给定区间[a, b]内有多少个满足上述要求(即令is返回1)的整数,并计算这些整数的和。最后按照格式

1.2.1 数据处理

整型变量:int is(int n)
{
int a=0,b=0;
while (n!=0)
{

	b = n % 10;//提出个位数
	n /= 10;//取下一位数
	a += b;//整和
}
if (a == 5)//判断整和数是否等于5
	return 1;
else
	return 0;

}
void count_sum(int a, int b)
{
int sum = 0, count = 0, i;

for (i = a; i <= b; i++) 
{
	if (is(i))//以is函数的if为条件来进行判断
     {
		count++;//计数满足的个数
		sum += i;//整数的和
	}
}
printf("count = %d, sum = %d", count, sum);

}

1.2.2 实验代码截图

1.2.3 造测试数据

输入数据 输出数据 说明
104 999 104 is counted.count = 15, sum = 3720 样例
100 999 count = 15, sum = 3720 说明,正确
16 400 count = 16, sum = 2555 说明,正确
1.2.4 PTA提交列表及说明

  • 编译错误:if判断五的那里的return没打;,
  • 格式错误;有些大扩号没打好。

2.代码互评

  • 上图为同学的,下图为我自己的

  • 上图:1.没看懂第二个for中的m/=10是什么意思2.可以说非常详细,一步一步来的3.还判断了奇偶性。

  • 下图:1.直接就判定2.在条件中提数3.比上图简洁很多。

3.1 学习进度条

|周/日期|这周所花时间|代码行|学到的知识点简介|目前比较迷惑的问题|
|- |- |- |- |
|10/7-10/10|9+|30行+|scanf()语句,if-else语句,平方,根号|循环语句的运用|
|10.16/10.17|5个小时|141|如何运用for语句|主要是后面的部分|
|10.23/10.26|5个小时|141|如何定义函数,运用while语句|主要是do-while语句,不熟悉了|
|10.30/11.2|8小时|200+|如何在if else和for中嵌套|
|11.6/11.7|5小时|100+|如何灵活的运用switch语句|
|11.13/11.14|5小时|80+| n=getchar();和switch加return 0|
|11.20/11.21|5小时|92|数组怎么用|
|11.27/11.28|5小时+|89|这次的第一题|
|12.4/12.5|5小时+|58|这次的编程题(太难了)|

3.2 累积代码行和博客字数

3.3 学习内容总结和感悟

3.3.1 学习内容总结

  • 这周新学习了两种函数,讲道理到现在我也没搞清楚,只知道那个静态变量的值不会改变,而局部变量会在被返回
    的时刻就会删除了。

3.3.2 思维导图

3.3.3 学习体会

  • 这周复习线代和高数,而且也学了新东西,但是嘞讲道理,这周的题目有点难,我们亲爱的助教他都还没写完,我一看那两
    个编程题,我人就傻了,还要复习其他科目,难啊!
posted @ 2019-12-05 21:05  Joker23333  阅读(260)  评论(3)    收藏  举报