用函数编程实现输出 m~n之间所有素数,并求和,m和n由键盘输入。素数是只能被1和自身整除的大于1的正整数。 要求程序能对用户输入的数据进行正确性检查,满足条件:m和n都是大于1的正整数,并且m<=n。

  1. 要求编写函数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的返回值来判断是否成功读入数据。

  2. 要求编写函数IsPrime判断自然数x是否为素数,如果x是素数则返回1,不是素数返回0。
    函数原型:
    int IsPrime(unsigned int n);
    返回值:如果x是素数则返回1,不是素数返回0。

  3. 要求编写函数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语言)相关推荐

  1. 海大11年春第5题:编程输出[m,n]之间所有素数,m,n由键盘输入。(10分)

    题目 本题是中国海洋大学<C语言程序设计>2011年春季学期编程题第5题. 题目: 编程输出[m,n]之间所有素数,m,n由键盘输入.(10分) 以下是本篇文章正文内容,欢迎朋友们进行指正 ...

  2. 输出100 - 200之间的素数C语言

    输出100 - 200之间的素数 素数就是质数,即除了1和它本身不再有求它因数的自然数 那么这道题的思路就是用100到200之间的数去除以比这个数小的所有数(除了1和它本身),如果有余数说明它不是一个 ...

  3. 输出1~N之间所有素数

    输出1~N之间所有素数,含N,在控制台里每个数之间以一个空格作为分隔,对于1~N范围内的数,进行整除,直至除到sqrt(N),不能整除的,则是质数 #include<stdio.h> #i ...

  4. C语言基础 - 输出1-100万之间的素数

    其实这个很简单 代码 网上也一大堆... //判断素数 BOOL isPrime(int num) {for (int i = 2; i <= sqrt(num); i++) {//能整除则不为 ...

  5. 【回文数】求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 ...

  6. 2. 输出2~100之间的素数

    public class z1 {public static void main(String[] args) {for (int a = 2; a <101; a++) {int b = 2; ...

  7. 输出 2~n之间所有素数,并求和,n由键盘输入。素数是只能被1和自身整除的整数。要求编写函数判断自然数x是否为素数

    #include<stdio.h> int IsPrime( int x); //函数原型声明 int main() {int n, sum;printf("Please inp ...

  8. c语言编程怎么写从键盘输入,c语言编程: 从键盘任意输入三个数,按照从小到大的顺序输出....

    #include<stdio.h> void main() { int a,b,c,t; printf("请输入三个整数:a b c\n"); scanf(" ...

  9. 从键盘输入三个数并从大到小排序输出

    输入三个数并从大到小排序输出 从键盘输入三个数,a, b, c,之后比较他们的大小并交换位置在a内放最大值在b内放中间值,在c内放最小值,并按照abc的顺序输出 . void main() {int ...

最新文章

  1. Apache Oltu 实现 OAuth2.0 服务端【授权码模式(Authorization Code)】
  2. python笔记:jieba(中文分词)
  3. 【django】配置URLconf
  4. Objective-c 创建类的使用
  5. Burrow 服务的安装部署
  6. rocketmq 顺序消费_10 分钟看懂消息队列 RocketMQ
  7. mongoose 定义经纬度数据类型
  8. 设置python路径
  9. C# winform post请求数据
  10. Myeclipse8.5 反编译插件 jad 安装
  11. 高性能web建站规则(尽量减少http请求)
  12. se105模板,产品详情页去掉多余的review栏目。
  13. bme280中文技术手册_Rhino 6 中文训练手册发布
  14. ds6708 symbol 驱动_Symbol DS6708条码扫描器
  15. js如何实现简繁体互转
  16. 基于rietveld搭建CodeReview平台
  17. 跟刘欣学习造spring
  18. 央行企业征信异议、声明业务办理流程?
  19. 基于boostrap的登录注册界面制作(html+css)
  20. 华为云ECS服务器中通过docker部署ELK-kibana

热门文章

  1. 华为手机录屏大师录制的视频在本地目录找不到无法转移到PC的问题解决方案——免费转移视频
  2. android百度地图行政区填充颜色
  3. samba搭建办公室共享打印机
  4. 无法访问其他计算机共享打印机,想共享别人的打印机,但显示无法连接到打印机怎么处理?高手来!...
  5. Windows柯尼卡打印机驱动安装
  6. 计算机网络第六版勘误表,最新《深入理解计算机网络》勘误表.docx
  7. Java:IO流的概念、作用、分类
  8. android 进球数据布局,10个有趣的数据,总结梅西令人难以置信的2018-19赛季!
  9. Neo4j CQL-(18)IN操作符
  10. linux输入法搜狗 修复,搜狗输入法自带修复功能,可以解决无法打字的问题