C语言I博客作业11

我的梦境 提交于 2019-12-06 17:41:26

一.表格

这个作业属于哪个课程 C语言程序设计II
这个作业要求在哪里 C语言I博客作业11
我在这个课程的目标是 把C语言学精,熟练掌握编程技术,努力找到简单代码的写法
这个作业在哪个具体方面帮助我实现目标 PTA上做题,devc++慢慢掌握调试,加强对于函数类型以及静态和动态储存的理解与应用
参考文献 百度百科其他同学作业,《C Primer Plus》,教科书

二.本周作业

1.PTA实验作业

1.1统计某类完全平方数

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

函数接口定义:

int IsTheNumber ( const int N );

输入样例:

105 500

输出样例:

cnt = 6
1.1.1数据处理
  • 数据表达r,n,a[10],d(变量);运算,赋值(怎么来);int(整型)

  • 函数参数主函数是“int main()”,被调函数是“int IsTheNumber ( const int N )”形参是r,n,a,它们都是整型

  • 数据处理
定义变量r来放参数N二分之一次方,n来放参数N,a[10]来放完全平方数(完全平方数可以有10位)

if(r*r==N)
   判断是否是完全平方数
   定义变量d来表示数组里的元素
   while(n){
     d=n%10;
     求完全平方数个位数
     a[d]++;
     数组元素位置上加1
     if(a[d]==2){
     是否同一个元素位置上等于2
     返回1;跳出循环
     


   n/=10; 
   取出完全平方数的各位数
   }
  不是便返回0
  程序结束。
1.1.2实验代码截图

1.1.3造测试数据
输入数据 输出数据 说明
105 500 cnt = 6 题目样例
1 100 cnt = 1 包含所有二位数
1 1000 cnt = 9 包含所有3位数
-100 0 cnt = 0 不符合条件
1.1.4PTA提交列表及说明

题目说明:这个题目刚开始想不用数组去写,想了很久,发现根本不可以。因为完全平方数的位数无法确定,所以必须用数组才可以解决这个问题。去百度搜了一下数组怎么用,然后再dev上试了十多分钟,便写出来了。理解之后便写在pta上面了。

1.2 统计各位数字之和是5的数

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

函数接口定义:

int is( int number );
void count_sum( int a, int b );

输入样例:

104 999

输出样例:

104 is counted.
count = 15, sum = 3720
1.2.1数据处理
  • 数据表达i(变量)这题只需要用if-else嵌套就行,所以只需要设置一个变量;赋值(如何来);int(整型)
  • 数据处理
定义变量i来放1——1000所有正整数

for(i=1;i<=1000;i++)
   保证1到1000所有数进入循环
   if(i*i%10==i)
      判断一位数是否为同构数
         空6列输出同构数
   else
      if(i*i%100==i)
         判断两位数是否为同构数
           空6列输出同构数
      else
         if(i*i%1000==i)
            判断三位数是否为同构数
              空6列输出同构数
        
  程序结束
1.2.2实验代码截图


1.1.3造测试数据
输入数据 输出数据 说明
104 99 题目样例
1.1.4PTA提交列表及说明

这个题为这次挑战题,但仔细阅读题目便知道,这和上次作业计算分数差不多。我在Dev上写,每次都答案不对,再仔细看题目,原来还要输出6列才行。加上了,答案便和题目样例一模一样。

2.代码互评

2.1.1 同学代码截图①

2.1.2自己代码截图①

  • 我们的不同之处.
  • 这位同学和我思路差不多,只是我用的是if-else嵌套结构,他只用一个if-else然后包括所有条件即可输出。
  • 他是把平方数定义为n,然后直接输出,而我直接用一个变量i表示所有条件
  • 我应该有时候运用他这种总和条件的知识,看着很长,但有时候挺好用的。

    2.2.1同学代码截图②

    2.2.2自己代码截图②

  • 我们的不同之处.
  • 他的思路和我差不多,不过表达有些偏差。
  • 他用count计梅森数;我是直接当n输入为1时,输出None
  • 最后判断素数方法有点不一样,他for循环判断j的最大值没有除以2后面也用了一次;我是前面用了,后面判断直接是否等于0。
  • 他的这种思维更加简单,不过逻辑没有我紧密

    3.学习总结

    3.1学习进度条

    周/日期 这周所花的时间 代码行 学到的知识点简介 目前比较迷惑的问题
    十一/3/12-6/12 3天 150 函数类型以及静态和动态储存的理解与应用 挑战题数组的运用
    十/26/11-29/11 2天 110 对循环语句for,if-else加强理解以及对嵌套掌握更加熟练 还有点不清楚字符怎么用
    九/19/11-22/11 3天 100 break语句,continue语句用法和区别 不太清楚字符怎么用
    八/12/11-15/11 3天 120 while和do-while循环语句用法和概念 暂时没有
    七/5/11-8/11 3天 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 if-else,&&用法,字母%用法,数学函数 PTA每次答案错误,都十分难找出来。不得已重打

3.2累计代码行和博客字数

3.3学习内容总结和感悟

3.3.1学习内容总结

3.3.2学习体会
  • 这周主要进行对函数的拓展:全局变量、局部变量、静态和动态存储区怎么用,是什么。感觉函数类似于数学函数啊。。依旧的难理解。看样子要多看书和b站大学理解了。
  • 这次作业一元二次方程好难啊。。复数的输出真的好难。。应该是因为高中没对一元二次拓展,,完全不知道复数跟怎么讨论
  • 主要是进行全局变量和局部变量以及自动变量和静态变量的分别
  • 快要期末了,我发现上课学的知识真的很少,这也说明了大学是靠自学的。下周就要考选择题了。。我得抓紧学后面内容了。
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!