C语言I——作业09

本文介绍了如何通过函数实现判断数字和、验证水仙花数、哥德巴赫猜想以及计算素数和的相关任务,涵盖了计算机网络基础知识和编程实践。学习者分享了15周的学习进度和关键概念,如分包、分层和网络协议,以及函数接口的使用。
摘要由CSDN通过智能技术生成
这个作业属于哪个课程https://bbs.csdn.net/forums/csuft_swxy_C?joinKey=rjrg8lmq4wzq-p9oj9kxrkm-1-60300df3382549104a12bbe9f193eb77&typeId=17321
这个作业要求在哪里https://bbs.csdn.net/topics/603700627
这个作业的目标函数
学号20218527

一、本周作业(总分35分)

1.1 完成PTA作业,并给出编程题完成截图,截图上有自己的学号及姓名标识(不是截图形式的计0分)(每题5分)

6-1 统计各位数字之和是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
结尾无空行

在这里插入图片描述

  • 数据表达:用int定义变量t,s,i,number,a,b,c,都是整型变量
  • 数据处理:运用了while循环,if语句和for循环 ,流程结构为循环结构和选择结构,函数is判断number的各位数字之和是否等于5,是则返回1,否则返回0。函数count_sum利用函数is统计给定区间[a, b]内有多少个满足上述要求(即令is返回1)的整数,并计算这些整数的和。最后按照格式count = 满足条件的整数个数, sum = 这些整数的和进行输出。
    在这里插入图片描述
    编译错误·:刚开始没有定义变量i就直接用了

6-2 使用函数输出水仙花数 (20 分)

仙花数是指一个N位正整数(N≥3),它的每个位上的数字的N次幂之和等于它本身。例如:153=1³+5³+3³本题要求编写两个函数,一个判断给定整数是否水仙花数,另一个按从小到大的顺序打印出给定区间(m,n)内所有的水仙花数。

函数接口定义:

int narcissistic( int number );
void PrintN( int m, int n );
函数narcissistic判断number是否为水仙花数,是则返回1,否则返回0。
函数PrintN则打印开区间(m, n)内所有的水仙花数,每个数字占一行。题目保证100≤m≤n≤10000。

裁判测试程序样例:

#include <stdio.h>

int narcissistic( int number );
void PrintN( int m, int n );

int main()
{
int m, n;

scanf("%d %d", &m, &n);
if ( narcissistic(m) ) printf("%d is a narcissistic number\n", m);
PrintN(m, n);
if ( narcissistic(n) ) printf("%d is a narcissistic number\n", n);

return 0;

}

/* 你的代码将被嵌在这里 */

输入样例:

153 400

输出样例:

153 is a narcissistic number
370
371
在这里插入图片描述

  • 数据表达:用int定义变量a,b,c,x,i,j,m,n,变量类型为整型。
  • 数据处理:运用了while循环,for循环和if语句,流程结构为循环结构和选择结构,先用一个while循环来确定number的位数,再通过一个while循环来判断nuber是否为一个水仙花数,在while循环中嵌套了一个for循环,再利用一个if语句来输出1或0。
    在这里插入图片描述
    编译错误:语句后面没有加分号

6-3 使用函数验证哥德巴赫猜想 (20 分)

本题要求实现一个判断素数的简单函数,并利用该函数验证哥德巴赫猜想:任何一个不小于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,
结尾无空行
在这里插入图片描述

  • 数据表达:用int定义变量i,p,n,a,count,变量类型为整型。
  • 数据处理:流程结构选择结构为if-else语句,循环结构:for循环。
    在这里插入图片描述
    编译错误:

6-4 使用函数求素数和 (20 分)

使用函数求素数和
prime§, 其中函数prime当用户传入参数p为素数时返回True,否则返回False. PrimeSum(m,n),函数PrimeSum返回区间[m, n]内所有素数的和。题目保证用户传入的参数1<=m<n。

函数接口定义:

在这里描述函数接口:
prime§,返回True表示p是素数,返回False表示p不是素数
PrimeSum(m,n),函数返回素数和
裁判测试程序样例:
/* 请在这里填写答案 */
m,n=input().split()
m=int(m)
n=int(n)
print(PrimeSum(m,n))

输入样例:

在这里给出一组输入。例如:
1 10
结尾无空行

输出样例:

在这里给出相应的输出。例如:
17
结尾无空行
在这里插入图片描述

  • 数据表达:定义变量flag,p,i,res
  • 数据处理:用除2到√n以内的数,若能整除则不是素数;若全部都不能整除就是素数这个判断方法来确定是否为素数。
    在这里插入图片描述

1. 2请给出本章学习总结(15分)

1 学习进度条(5分)
周/日期这周所花的时间代码行学到的知识点简介目前比较迷惑的问题
第15周9h180学习了计算机网络的功能主要是信息的传递和资源的共享,分包和分层的含义和主要作用,还有计算机网络中五层的概念和功能,每一层的关键技术等等,然后就是web中域名和url的区别
没有什么疑惑
2 累积代码行和博客字数(5分)

在这里插入图片描述

3 学习内容总结和感悟(5分)

这周课上学了计算机网络的一些概念,知道了用户和用户之间传递信息的大致过程,然后还学了一些函数相关的知识。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值