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只能输出一个值。