一.PTA实验作业
1. 判断一个整数的各位数字平方之和能否被5整除
题目内容描述:编写函数fun,其功能是:判断一个整数的各位数字平方之和能否被5整除,可以被5整除则返回1,否则返回0。
函数接口定义:
int fun(int n );
其中 n 是用户传入的参数。 函数判断n的各位数字平方之和能否被5整除,能被5整除则返回1,否则返回0。
裁判测试程序样例:
#include <stdio.h>
int fun( int n );
int main()
{
int m;
scanf("%d", &m);
printf("The result is %d\n", fun(m));
return 0;
}
/* 你的程序将被嵌入在这里 */
输入样例:
12
输出样例:
The result is 1
输入样例:
123
输出样例:
The result is 0
(1)数据处理
数据表达:用了整形变量S,i,n;n 是用户传入的参数,S来保存n的各位数字平方之和,i用来保存要输出的结果。
数据处理:用了while语句和if-else语句,用了表达式S+=((n%10)*(n%10))。
函数参数:主函数的名称为main,被调函数的名称为fun,类型为整形。实参为整形m,形参为整形n。
(2)实验代码截图
(3)造测试数据
输入数据 |
输出数据 |
说明 |
0 |
The result is 1 |
当n=0时 |
1 |
The result is 0 |
当n=1时 |
86 |
The result is 11 |
当n为较大数时 |
(4)PTA提交列表及说明
提交列表说明
1.编译错误:第一次使用while语句不小心将while打为whhile。
2. 使用函数验证哥德巴赫猜想
题目内容描述:本题要求实现一个判断素数的简单函数,并利用该函数验证哥德巴赫猜想:任何一个不小于6的偶数均可表示为两个奇素数之和。素数就是只能被1和自身整除的正整数。注意:1不是素数,2是素数。
函数接口定义:
int prime( int p );
void Goldbach( int n );
其中函数prime当用户传入参数p为素数时返回1,否则返回0;函数Goldbach按照格式“n=p+q”输出n的素数分解,其中p≤q均为素数。又因为这样的分解不唯一(例如24可以分解为5+19,还可以分解为7+17),要求必须输出所有解中p最小的解。
裁判测试程序样例:
#include <stdio.h>
#include <math.h>
int prime( int p );
void Goldbach( int n );
int main()
{
int m, n, i, cnt;
scanf("%d %d", &m, &n);
if ( prime(m) != 0 ) printf("%d is a prime number\n", m);
if ( m < 6 ) m = 6;
if ( m%2 ) m++;
cnt = 0;
for( i=m; i<=n; i+=2 ) {
Goldbach(i);
cnt++;
if ( cnt%5 ) printf(", ");
else printf("\n");
}
return 0;
}
/* 你的代码将被嵌在这里 */
输入样例:
89 100
输出样例:
89 is a prime number
90=7+83, 92=3+89, 94=5+89, 96=7+89, 98=19+79
100=3+97,
(1)数据处理
数据表达:用了整形变量flag,i;,i用于控制for循环的结束状态,flag用于贮存返回的值。
数据处理:用了for循环和if判断语句。
函数参数:主函数的名称为main ,被调函数的名称为prime,类型为整形。实参为整形n,形参为整形p。
(2)实验代码截图
(3)造测试数据
输入数据 |
输出数据 |
说明 |
79 90 |
79 is a prime number,80=7+73, 82=3+79, 84=5+79, 86=3+83, 88=5+83 90=7+83, |
随机测试 |
11 13 |
11 is a prime number 12=5+7, |
随机测试 |
(4)PTA提交列表及说明
提交列表说明
1.表示该题完全没有思绪,借鉴百度后才做出来,但是对于 if(p<2)return 0; if(p==2)return 1;还是不是很懂。
二.代码互评
同学(杨宇)代码:
同学(柏朝晖)代码
自己代码:
比较
(1)第一份用了while语句,而我的是直接赋值于a,b,c.她只用了2个变量来计算总数,而我用了4个变量,相对于我的,她的更好一些,因为她所需开辟的空间要少。
(2)第二份直接将大括号打在for语句体的后面,而我是另取一行与回括的大括号对齐导致代码行数比这位同学多,而他更好的节省了空间。
三.学习总结
1.学习进度条
周/日期 |
这周所花的时间 |
代码行 |
学到的知识点简介 |
目前比较迷惑的问题 |
第四周/9.16~9.22 |
7小时 |
100行 |
在屏幕上显示Hello World! |
暂无 |
第五周/9.23~9.29 |
8小时 |
100行 |
求华氏温度对应的摄氏温度 |
暂无 |
第六周/9.30~10.6 |
30小时 |
200行 |
如何用 MinGW-w64 来编译C程序 |
暂无 |
第七周/10.7~10.13 |
24小时 |
300行 |
运用if语句完成各种数学程序 |
对于&&的用法不了解 |
第八周/10.14-10.20 |
24小时 |
300行 |
学会了for循环语句 |
暂无 |
第九周/10.21-10.28 |
24小时 |
300行 |
学会了如何去自定义一个函数 |
暂无 |
2. 累积代码行和博客字数
3 .学习内容总结和感悟
(1)学习内容总结
(2) 学习体会
感觉这一星期没有休息时间,游戏都没有时间玩了。虽然是忙了点,但是我觉得很充实,每天熬夜写作业是真的很快乐。别人都说大一很闲,我表示我们专业真的是太难了啊。每次C语言作业一布置下来我就没有资格早睡。希望慢慢的我做作业的速度越来越快。