这个作业属于那个课程 C语言程序设计II
这个作业要求在哪里 C语言I作业11
我在这个课程的目标是 熟悉并掌握基本的C语言知识,并拥有独立完成编辑程序的能力
这个作业在那个具体方面帮助我实现目标 明白并区分局部变量和全局变量
参考文献 Markdown语法参考1集美大学林丽老师思维导图伪代码

1.PTA实验作业

1.1统计某类完全平方数

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

函数接口定义:

  int IsTheNumber ( const int N );
  其中N是用户传入的参数。如果N满足条件,则该函数必须返回1,否则返回0。

裁判测试程序样例:

  #include <stdio.h>
  #include <math.h>

int IsTheNumber ( const int N );

int main()
 {
  int n1, n2, i, cnt;

scanf("%d %d", &n1, &n2);
cnt = 0;
for ( i=n1; i<=n2; i++ ) {
    if ( IsTheNumber(i) )
        cnt++;
}
printf("cnt = %d\n", cnt);

return 0;
}
/* 你的代码将被嵌在这里 */

输入样例:

105 500

输出样例:

cnt = 6

1.1.1数据处理

数据表达:主函数定义了整型变量n1,n2,i,cnt;其中n1,n2位输入的取值范围,i用于控制循环,cnt用于记录满足条件的数有多少
数据处理:

   cnt=0
   for(i=n1;i<=n2;i++)
{
       if 自定义函数反回来的值不为零 then cnt++
}
   输出cnt

 自定义函数:
 定义n用于放N的平方根,m用于判断N的位数,i用于记录N的位数,a[10]用于收集N每一位上的值,j,k用于控制循环,s为返回值
 n=根号N
 m=N
 if n*n=N then 
 {
      while(m>0)
    {
      a[i]=m除10的余数
      m自除10
      i++
    }
      for(j=1;j<i;j++)
      {
         for(k=2;k<i;k++)
        {
            if a[j]=a[k]且j!=k then s=1 跳出循环
        }
      } 
  }
  返回s的值

1.1.2实验代码截图

1.1.3 造测试数据

输入数据 输出数据 说明
10 20 cnt = 0 10~20内没有类完全平方数
105 500 cnt = 6 105~500内有6个类完全平方数
100 300 cnt = 4 100~300内有4个类完全平方数

1.1.4 PTA提交列表及说明


编译错误:忘记打分号,通过在devc++上运行的时候发现错误改正的。

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

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

函数接口定义:

 int is( int number );
 void count_sum( int a, int b );
 函数is判断number的各位数字之和是否等于5,是则返回1,否则返回0。
 函数count_sum利用函数is统计给定区间[a, b]内有多少个满足上述要求(即令is返回1)的整数,并计算这些整数的和。最后按照格式
 count = 满足条件的整数个数, sum = 这些整数的和
 进行输出。题目保证0<a≤b≤10000。

裁判测试程序样例:

 #include <stdio.h>
 int is( int number );
 void count_sum( int a, int b );
 int main()
 {
    int a, b;

  scanf("%d %d", &a, &b);
  if (is(a)) printf("%d is counted.\n", a);
  if (is(b)) printf("%d is counted.\n", b);
  count_sum(a, b);

  return 0;
  }

  /* 你的代码将被嵌在这里 */

输入样例:

  104 999

输出样例:

  104 is counted.
  count = 15, sum = 3720

1.2.1数据处理

数据表达:主函数定义了整型变量a,b为输入的范围。自定义函数is定义了整型变量i,sum,其中sum为传过来的number的每一位相加的和,i为返回值。
数据处理:

 主函数:
 定义a,b为输入的范围

 自定义函数is:
 定义i为控制循环变量,sum为number的每一位数累加的和
 while(number>0)
 {
 sum+=number除以10的余数
 number自除10
 }
 if sum=5 then i=1
 返回i的值

1.2.2实验代码截图

1.2.3 造测试数据

输入数据 输出数据 说明
104 999 104 is counted.count = 15, sum = 3720 104~999内有15个各位数字之和是5的数,且他们的和为3720
23 200 23 is counted.count = 9, sum = 756 23~200内有9个各位数字之和是5的数,且他们的和为756

1.2.4 PTA提交列表及说明

编译错误:我用了中文符号";"
编译错误:从vs复制过来的时候scanf_s忘记改成scanf导致错误


2.代码互评

同学代码

自己代码

 1.他的代码是定义m放N的平方根,n为m的平方,当n和N相等的时候再开始判断是否有相同的数,如果有则返回1,没有则返回0
 2.我的代码是定义n放N的平方根,m放N的值,当n的平方和 N相等的时候用数组收集N的每一位数,然后再判断数组内是否有相同的数

同学代码

自己代码

 1.他的代码自定义is函数定义digital来收集number的每一位数并用sum1累加贮存,然后判断当sum1=5时返回1否则返回0,自定义count_sum函数定义count来记录符合要求的个数,用sum来放累加和,当is函数返回的是1时count+1而sum+i然后输出count和sum
 2.我的代码自定义is函数定义sum来累加number的每一位数,i用于返回的值,当sum=5时i=1,然后返回i的值,自定义count_sum函数定义count来记录符合要求的个数,用sum来放累加和,当is函数返回的是1时count+1而sum+i然后输出count和sum

3.学习总结

3.1 学习进度条

周/日期 这周所花的时间 代码行 学到的知识点简介 目前比较迷惑的问题
10/8-10/12 6h 106 if-else语句和else-if多分支结构 还没有特别迷惑的问题
10/14-10/20 7h 168 如何用double型数据使用lf%,怎样在程序中用for语句实现循环,可指定循环次数 循环体中的关系表达式的正确运用
10/22-10/26 5h 159 如何自定义函数,调试,函数命名 函数如何运算,什么时候函数返回
10/29-11/2 8h 173 分支结构,逻辑运算和关系运算,字符型数据 逻辑运算和关系运算的相同之处和不同之处
11/5-11/8 6h 210 多分支结构中的swtich结构的运用 swtich语句配合其他的术语运用
11/12-11/16 9h 151 do-while,while循环语句和continue语句 while语句的深入运用
11/19-11/22 10h 163 熟悉break、continue的使用及熟悉使用循环的嵌套解决问题 对于嵌入的多重用法
11/26-11/29 8h 187 一些运算符的应用 不会使用结构体
12/3-12/6 9h 214 自动变量,静态变量,局部变量和全局变量 这些变量怎么使用还是不明白

3.2累计代码行和博客字数

时间 博客字数 代码行数
第六周 43 436
第七周 84 857
第八周 106 1352
第九周 168 1427
第十周 159 1938
第十一周 173 2107
第十二周 210 2451
第十三周 151 2126
第十四周 163 3451
第十五周 187 4362
第十六周 214 6872

3.3 学习内容总结和感悟

3.3.1 学习内容总结

3.3.2 学习体会

        学习C语言的初期重点要放在掌握语言的语法和规定上,一定要养成良好的编程习惯,平时写程序注意语法规范格式控制,格式规范了,出了错误也容易找 到出错的地方,这是C语言的基础;后期的重点要转移到掌握编程的思路和基本算法上来。课后多做习题,找一些经典例子尝试自己编写,写程序切忌半途而费,想到一个思路,就要按自己思路把它写完,就算错了,也可以让自己了解为什么这样做会错?错在哪里?会出什么结果?以后自己也很难在这个地方犯同样的错误。当学到一个新的知识点,就试着把它运用到以前做的习题上,不但巩固了以前学的内容,也更加能加强新知识的理解。

posted on 2019-12-06 21:58  张宇林  阅读(335)  评论(2编辑  收藏  举报