C语言l|博客园作业11

感情迁移 提交于 2019-12-06 15:10:33
这个作业属于哪个课程 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语句
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 学习体会

  • 这周复习线代和高数,而且也学了新东西,但是嘞讲道理,这周的题目有点难,我们亲爱的助教他都还没写完,我一看那两
    个编程题,我人就傻了,还要复习其他科目,难啊!
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!