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

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

1.1.2实验代码截图

1.1.3 造测试数据

1.1.4 PTA提交列表及说明

 编译错误:“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<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 数据处理

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

1.2.2 实验代码截图

1.2.3 造测试数据

1.2.4 PTA提交列表及说明

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

2.代码互评

同学的代码

我自己的作业

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

同学的代码


自己的代码

  • 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 累积代码行和博客字数

3.3 学习内容总结和感悟

3.3.1 学习内容总结

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

3.3.2 学习体会

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

posted @ 2019-12-06 20:00  一柄长剑两桀骜  阅读(214)  评论(0编辑  收藏  举报