C语言I博客作业05

问题 答案
这个作业属于那个课程 C语言程序设计II
这个作业要求在哪里 C语言I博客作业05
我在这个课程的目标是 熟练掌握C语言
这个作业在哪个具体方面帮助我实现目标 学会了如何去定义一个函数
参考文献 Markdown基本语法思维导图

一.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语言作业一布置下来我就没有资格早睡。希望慢慢的我做作业的速度越来越快。
posted @ 2019-10-26 12:51  sun-梦  阅读(313)  评论(6编辑  收藏  举报