C语言|博客作业11

这个作业属于哪个课程 C语言程序设计1
这个作业的要求在哪里 https://edu.cnblogs.com/campus/zswxy/SE2019-2/homework/10127
在本次课程中具体实现的目标 减少用函数来解决各种问题的迷惑,加强对函数的了解
在这个课程的目标是 自主编写小程序
参考文献 《C 语言程序设计》《C Primer Plus》

1. PTA实验作业

1.1 题目名1 统计某类完全平方数

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

1.1.1 数据处理

数据处理:

begin
函数接口定义:int IsTheNumber ( const int N );
定义变量n←N,m,div←10,i;
i ← (int)sqrt(N),n ← N的根方并取整;m ← i × i;
ifm=N则int a[10]←{0}[定义一个有10整型元素的数组a,同时数组a内所有元素均初始化为0];当n>0时,进入循环for (int k = 0; k < div; k++);
if(n % 10 ← k)进入循环a[k] += 1计算有多少个这样的整数定义,if(a[k]==2)进入循环for (int k = 0; k < div; k++) ;if (n % 10 ← k)则 a[k] += 1;
定整数N是否满足条件:它是完全平方数,又至少有两位数字相同,则该函数必须返回1,否则返回0
循环计算
end

数据表达:定义了整型变量n,m和数组a[10];循环的嵌套.

1.1.2 实验代码截图

C语言|博客作业11_第1张图片

1.1.3 造测试数据

输入数据 输出数据 说明
244 245 cnt = 0 两数之间没有满足条件是完全平方数,又至少有两位数字相同的数字
-12 546 cnt =7 两数之间满足条件是完全平方数,又至少有两位数字相同的数字有7个
123 345 cnt =2 两数之间满足条件是完全平方数,又至少有两位数字相同的数字有2个

1.4PTA提交列表及说明

C语言|博客作业11_第2张图片

提交说明
  1. 编译错误:数组a[10]内所有元素均初始化为0.
  2. 编译错误:N满足条件没有将该函数必须返回1,不满足是也没有返回0.
  3. 运行超时:原因不明.可能是内层循环的初始值赋值错误吧?变量之间转换错误?进入死循环?
  4. 答案错误:将该函数返回1时条件错误
  5. 部分正确:没有计算所有符合条件的值之和.

    1.2 题目名2 统计各位数字之和是5的数

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

    1.2.1 数据处理

    数据处理:

begin
函数接口定义:int is( int number );
定义n;定义sum,赋初始值为0;n = number;
sum += n % 10;n /= 10(除去各位数情况);
if sum←5则返回1,否则返回0;
函数接口定义void count_sum(int a, int b)
定义变量count = 0, sum = 0;
for (int i = a; i <= b; i++);则进入循环if (is(i)){count++;sum += i;}计算输出值count\sum;
end

数据表达:定义了整型变量n,sum,i;运用了嵌套循环.

1.2.2 实验代码截图

C语言|博客作业11_第3张图片

1.2.3 造测试数据

输入数据 输出数据 说明
123 765 count = 12, sum = 3381 给定区间之间的各位数字之和等于5的个数为12;给定区间内各位数字之和等于5这些整数的和为3381
-12 234 count =15, sum = 1684 给定区间之间的各位数字之和等于5的个数为15;给定区间内各位数字之和等于5这些整数的和为1684
1 23 23 is counted.count = 3, sum = 42 区间端点值23满足条件,给定区间之间的各位数字之和等于5的个数为3;给定区间内各位数字之和等于5这些整数的和为42

1.2.4 PTA提交列表及说明

提交说明
  1. 编译错误:未考虑区间端点值满足条件时的情况.
  2. 编译错误:for语句后勿加分号.
  3. 编译错误:变量count\sum未赋值为0.

    代码互评

    同学代码

    C语言|博客作业11_第4张图片

自己代码

C语言|博客作业11_第5张图片

  • 我是通过定义整形变量;当n=1时,输出None;当n=2时,输出3;外层循环,从2开始,b=pow(2,a)-1;内层循环,while(a%b!=0)时,b++.
  • 同学是定义整形变量,t=0作为变量标记;当n=1时,输出None;进入外层循环,从2开始,b=pow(2,a)-1,内层循环,从2开始,如果b%i=0,t=1,跳出循环;如果t=0,输出b;t要重置为0,返回主函数。

    3. 学习总结

    3.1 学习进度条

    周/日期 所花的时间 代码行 学到的知识点简介 目前比较迷惑的问题
    W7 15h 198 数据类型中的双精度浮点型double;算数运算符;选择结构if-else语句等 常用数据类型的区别
    W8 10h 87 循坏结构,算数运算符中的自增运算符 运算符的优先级顺序
    W9 10h 89 函数的声明、定义和调用 形参,实参的实质性区别
    W10 10h 112 熟悉并能运用多分支结构及if语句的镶嵌、字符型数据类型和逻辑运算符 各类语句的镶嵌用法
    W11 12h 145 运用switch语句处理多分支问题,掌握switch语句 多分支的分类怎样处理到位,语句怎样更简洁
    W12 11h 81 用while、do-while语句实现循环程序设计 while、do-while语句中循环体、循环语句的准确表达
    W13 13h 134 初步了解嵌套循环 外层循环、内层循环嵌套代码表述
    w14 15h 121 嵌套循环结构设计巩固 嵌套循环内外循环的变量的初始值,及终止循环的条件的正确赋值
    W15 16h 157 确定函数的的功能,局部变量、全局变量和静态局部变量的使用 静态局部变量的正确使用及使用范围

    3.2 累积代码行和博客字数

    C语言|博客作业11_第6张图片

3.3 学习内容总结

3.3.1 学习内容总结

C语言|博客作业11_第7张图片

  1. 函数调用的一般形式为 函数名(实际参数表).函数的形参必须是变量,用于接受实参传递过来的值;而实参可以是常量、变量或表达式,其作用是把常量、变量或表达式的值传递给形参。实参是主调函数,形参是被调函数。允许不同函数中使用相同函数值。
  2. return语句只能返回一个值。
  3. 形参中定义的变量皆为被调函数的局部变量。复合语句中定义的变量也是局部变量。

    3.3.2 学习体会

  • 马上就要考试了,说不慌都是假的。感觉很多很多东西都是模糊的,都是不懂的。
  • 时间安排也有很大的问题,发现了问题就应该努力去改。

你可能感兴趣的:(C语言|博客作业11)