用函数编程实现输出 m~n之间所有素数,并求和,m和n由键盘输入。(c语言)
用函数编程实现输出 m~n之间所有素数,并求和,m和n由键盘输入。素数是只能被1和自身整除的大于1的正整数。 要求程序能对用户输入的数据进行正确性检查,满足条件:m和n都是大于1的正整数,并且m<=n。
要求编写函数InputNumber 实现用户输入一个正整数,并对数的合法性进行检查,如果读入不成功(例如:输入字符串),或者数不合法即不是大于1的正整数,则重新输入,直到输入正确为止。
函数原型:
unsigned int InputNumber(char ch);
形式参数:ch,用于生成输入提示信息。
返回值:返回正确的输入值。
输入提示信息:printf(“Please input the number %c(>1):”,ch);
输入格式:"%d"
输入错误提示信息:“The input must be an integer larger than 1!\n”
提示:测试scanf的返回值来判断是否成功读入数据。要求编写函数IsPrime判断自然数x是否为素数,如果x是素数则返回1,不是素数返回0。
函数原型:
int IsPrime(unsigned int n);
返回值:如果x是素数则返回1,不是素数返回0。要求编写函数PrimeSum 输出m到n之间所有素数并返回它们的和。
函数原型:
int PrimeSum(unsigned int m, unsigned int n);
返回值:m到n之间所有素数的和。
每个素数的输出格式:"%d\n"
主函数定义如下:
int main()
{
int m = 0,n = 0,sum = 0,i = 0;
do
{
m = InputNumber(‘m’);
n = InputNumber(‘n’);
}while(m > n && printf(“n must be not smaller than m! Input again!\n”)); //保证m<=n
sum = PrimeSum(m,n);
printf(“sum of prime numbers:%d”,sum);
return 0;
}
运行实例:
Please input the number m(>1):abc
The input must be an integer larger than 1!
Please input the number m(>1):-34
The input must be an integer larger than 1!
Please input the number m(>1):56
Please input the number n(>1):23
n must be not smaller than m! Input again!
Please input the number m(>1):23
Please input the number n(>1):57
23
29
31
37
41
43
47
53
sum of prime numbers:304
Process returned 0 (0x0) execution time : 30.690 s
Press any key to continue.
#include <stdio.h>
unsigned int InputNumber(char ch);
int IsPrime(unsigned int n);
int PrimeSum(unsigned int m, unsigned int n);
int main()
{ int m = 0,n = 0,sum = 0,i = 0;do{ m = InputNumber('m');n = InputNumber('n');}while(m > n && printf("n must be not smaller than m! Input again!\n"));sum = PrimeSum(m,n);printf("sum of prime numbers:%d",sum);return 0;
}
int PrimeSum(unsigned int m, unsigned int n)
{ int sum = 0,i;for(i = m; i<= n; i++){ if(IsPrime(i)){ printf("%d\n",i);sum+= i;}}return sum;
}
unsigned int InputNumber(char ch)
{ int n, in;do{ printf("Please input the number %c(>1):",ch);in = scanf("%d",&n);while(getchar()!='\n');}while((in!=1 || n < 2) && printf("The input must be an integer larger than 1!\n") );return n;
}
int IsPrime(unsigned int n)
{ int isPrime = 1,i;for(i = 2; i < n; i++){ if(n%i==0){ isPrime = 0;break;}}return isPrime;
}
用函数编程实现输出 m~n之间所有素数,并求和,m和n由键盘输入。(c语言)相关推荐
- 海大11年春第5题:编程输出[m,n]之间所有素数,m,n由键盘输入。(10分)
题目 本题是中国海洋大学<C语言程序设计>2011年春季学期编程题第5题. 题目: 编程输出[m,n]之间所有素数,m,n由键盘输入.(10分) 以下是本篇文章正文内容,欢迎朋友们进行指正 ...
- 输出100 - 200之间的素数C语言
输出100 - 200之间的素数 素数就是质数,即除了1和它本身不再有求它因数的自然数 那么这道题的思路就是用100到200之间的数去除以比这个数小的所有数(除了1和它本身),如果有余数说明它不是一个 ...
- 输出1~N之间所有素数
输出1~N之间所有素数,含N,在控制台里每个数之间以一个空格作为分隔,对于1~N范围内的数,进行整除,直至除到sqrt(N),不能整除的,则是质数 #include<stdio.h> #i ...
- C语言基础 - 输出1-100万之间的素数
其实这个很简单 代码 网上也一大堆... //判断素数 BOOL isPrime(int num) {for (int i = 2; i <= sqrt(num); i++) {//能整除则不为 ...
- 【回文数】求11到n之间(包括n),既是素数又是回文数的整数有多少个。 输入 一个大于11小于1000的整数n。 输出 11到n之间的素数回文数个数。 样例输入 Copy 23 样例输出 Copy 1
#include<stdio.h>int a(int n) {for(int i=2;i<n/i;i++);{if(n%2==0)//若n%2==0则不是素数.return 0;}r ...
- 2. 输出2~100之间的素数
public class z1 {public static void main(String[] args) {for (int a = 2; a <101; a++) {int b = 2; ...
- 输出 2~n之间所有素数,并求和,n由键盘输入。素数是只能被1和自身整除的整数。要求编写函数判断自然数x是否为素数
#include<stdio.h> int IsPrime( int x); //函数原型声明 int main() {int n, sum;printf("Please inp ...
- c语言编程怎么写从键盘输入,c语言编程: 从键盘任意输入三个数,按照从小到大的顺序输出....
#include<stdio.h> void main() { int a,b,c,t; printf("请输入三个整数:a b c\n"); scanf(" ...
- 从键盘输入三个数并从大到小排序输出
输入三个数并从大到小排序输出 从键盘输入三个数,a, b, c,之后比较他们的大小并交换位置在a内放最大值在b内放中间值,在c内放最小值,并按照abc的顺序输出 . void main() {int ...
最新文章
- Apache Oltu 实现 OAuth2.0 服务端【授权码模式(Authorization Code)】
- python笔记:jieba(中文分词)
- 【django】配置URLconf
- Objective-c 创建类的使用
- Burrow 服务的安装部署
- rocketmq 顺序消费_10 分钟看懂消息队列 RocketMQ
- mongoose 定义经纬度数据类型
- 设置python路径
- C# winform post请求数据
- Myeclipse8.5 反编译插件 jad 安装
- 高性能web建站规则(尽量减少http请求)
- se105模板,产品详情页去掉多余的review栏目。
- bme280中文技术手册_Rhino 6 中文训练手册发布
- ds6708 symbol 驱动_Symbol DS6708条码扫描器
- js如何实现简繁体互转
- 基于rietveld搭建CodeReview平台
- 跟刘欣学习造spring
- 央行企业征信异议、声明业务办理流程?
- 基于boostrap的登录注册界面制作(html+css)
- 华为云ECS服务器中通过docker部署ELK-kibana
热门文章
- 华为手机录屏大师录制的视频在本地目录找不到无法转移到PC的问题解决方案——免费转移视频
- android百度地图行政区填充颜色
- samba搭建办公室共享打印机
- 无法访问其他计算机共享打印机,想共享别人的打印机,但显示无法连接到打印机怎么处理?高手来!...
- Windows柯尼卡打印机驱动安装
- 计算机网络第六版勘误表,最新《深入理解计算机网络》勘误表.docx
- Java:IO流的概念、作用、分类
- android 进球数据布局,10个有趣的数据,总结梅西令人难以置信的2018-19赛季!
- Neo4j CQL-(18)IN操作符
- linux输入法搜狗 修复,搜狗输入法自带修复功能,可以解决无法打字的问题