C语言I博客作业11

C语言I博客作业11

这个作业属于哪个课程? C语言程序设计I
这个作业要求在哪里? https://edu.cnblogs.com/campus/zswxy/CST2019-2/homework/10131
我在这个课程的目标是 计算机中级执照
这个作业在哪个具体方面帮助我实现目标? 学习c语言编程是最基础的一课,是为后面所学做好铺垫。属于打基础一块。
参考文献 《C语言程序设计》,《C Primer Plus》,百度等。

1.PTA实验作业

1.1 统计某类完全平方数 (20分)

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

函数接口定义:

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

裁判测试程序样例:

include

include

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数据处理

 数据表达:N为所输入的数,i为循环数,A来代替N,m为根号的值。
 数据处理:先函数的调用。
          使用for与while循环选出i符合题目要求。
          分别完成完全平方数,和至少有两位数字相同的要求。

1.1.2实验代码截图

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

1.1.3 造测试数据

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

1.1.4 PTA提交列表及说明

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

 编译错误:“sqrt”函数打错了。
 答案错误:没有考虑至少两位数相同。
 答案正确:。。。

1.2统计各位数字之和是5的数 (20分)

本题要求实现两个函数:一个函数判断给定正整数的各位数字之和是否等于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

裁判测试程序样例:

include

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 数据处理

 数据表达:借由题目而来
 数据处理:先定义,
          接着调用函数,
          通过while循环,来表示s的变化。
          再通过定义函数count_sum
          通过i与sum的加法得出答案。

1.2.2 实验代码截图

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

1.2.3 造测试数据

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

1.2.4 PTA提交列表及说明

 格式错误:空格少打了。
 编译错误:“;”少打了。
 答案正确:。。。

2.代码互评

同学的代码

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

我自己的作业

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

  • 1.同学这里的for循环起到了一个类似于计数器的作用,t依托数组通过数组从0-9的下标对应与输入数N的个十百位.在用下标对应的数计数中出现w数字的次数

同学的代码

C语言I博客作业11_第8张图片
C语言I博客作业11_第9张图片

自己的代码

C语言I博客作业11_第10张图片

  • 1.do{循环语句} while (条件);特点:循环体至少执行一次。
    while和do-while的区别只是 while先判断条件是否成立 在进行执行,而do-while是先执行 再来判断条件是否成立。

3.学习总结

本周学习了函数的定义,虽然以前就已经接触了但那时候没怎么学懂,现在终于知道形参和实参的区别了。(也可能是没有好好预习或者回顾导致)。形参的括号不能够省略。形参与实参是必须一一对应的。即参数传递。while都能由for循环转换过来,但while不一定能转换成for循环。while(表达式)这个括号里的表达式,为真的时候,就会执行循环体语句,当为假的时候,就不执行。在这里先不举例,后边遇到时再详细说明。还有另外一种情况,就是我们 C 语言里边,除了表达式外,还有常数,习惯上,我们把非 0 的常数都认为是真,只有 0 认为是假,所以我们程序中使用了 while(1),这个数字 1,可以改成 2、3、4......等等都可以,都是一个死循环,不停的执行循环体的语句,但是如果把这个数字改成 0,那么就不会执行循环体的语句了。

3.1 学习进度条

周/日期 这周花的时间 代码行 学到的知识点简介 目前比较迷惑的问题
第五周 8小时 五十行 hello world等一些简单的编译 暂无
第六周 8小时 八十行 通过编译来进行华氏度与摄氏度的转换 暂无
第七周 12小时 一百三十行 学习了if else,定义一部分数学函数 忽略scanf的返回值
第八周 13小时 一百五十行 学习了for格式 暂无
第九周 13小时 一百五十行 学习了while格式 对于定义函数仍然有些搞不懂
第十周 14小时 一百七十行 学习了字符型变量——char 无法灵活的运用取余
第十一周 16小时 一百九十行 学习了字符型变量——swicth swicth熟练度不够
第十二周 20小时 二百一十行 学习了循环体while 听懂了但实践有点难
第十三周 22小时 二百三十行 学习了循环加换行 逻辑跟不上
第十四周 22小时 二百六十行 暂无 暂无
第十五周 24小时 二百九十行 学了一些关于函数的新知识,如参数传递 如何定义函数(数学太差)

3.2 累积代码行和博客字数

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

3.3 学习内容总结和感悟

C语言I博客作业11_第12张图片

3.3.1 学习内容总结

   这周我学到了重新复习了函数,更深的教了关于函数的使用以及要注意的地方。数据通过参数传递到函数内部进行处理,处理完成以后再通过返回值告知函数外部。eg:函数首部后面不能加分号,它需要与函数整体构成一个整体。形参不能够省略括号。return只能输出一个值。

3.3.2 学习体会

这一周老师讲了实参的类型和数目要与形参保持一致。如果能够进行自动类型转换,或者进行了强制类型转换,那么实参类型也可以不同于形参类型,例如将 int 类型的实参传递给 float 类型的形参就会发生自动类型转换。C语言不允许函数嵌套定义;也就是说,不能在一个函数中定义另外一个函数,必须在所有函数之外定义另外一个函数。main() 也是一个函数定义,也不能在 main() 函数内部定义新函数。

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