文章责编:wangmeng
看了本文的网友还看了学历| 高考 中考 考研 自考 成考 外语| 四六级 职称英语 商务英语 公共英语 资格| 公务员 报关员 银行 证券 司法 导游 教师 计算机| 等考 软考
工程|一建 二建 造价师 监理师 咨询师 安全师 结构师 估价师 造价员 会计| 会计证 会计职称 注会 经济师 税务师 医学| 卫生资格 医师 药师 [更多]
1.程序test.c的功能是:计算500~800区间内素数的个数cnt,并按所求素数的值从大到小的顺序,计算其间隔减、加之和,即第1个素数.第2个素数+第3个素数.第4个素数+第5个素数…的值sum。请编写函数count Value()实现程序的要求,最后main()函数调用函数writeOAT()把结果cnt和Sum,输出到文件out.dat中。
试题答案及解析:
【审题关键句】计算500~800区间内素数的个数,素数的值从大到小排序,再计算其间隔减、加之和,即第1个素数-第2个素数+第3个素数-第4个素数+第5个素数……的值。
【解题思路】
①首先定义一个循环变量循环i和用于正负号转换的变量j,同时赋i的初值为-1。
②通过for循环对800到500的每个数字进行逐个的扫描,指定循环变量i的初值为800,当i值等于500停止循环,每执行一次循环,i的值便减1。(注意,本题for循环从大到小依次读取数据是根据题目要求设计的,这样得到的素数值其排序方式就是从大到小排序。)
③在每次执行for循环时,都调用素数判断函数isPrime()判断当前的i值是否为素数,如果是素数,则素数计数变量cnt值加1,正负号转换变量j的值乘以-1,实现正负数的交替转换,最后将每次循环得到的i*j的值累加到求和变量 sum中。
【参考答案】
北京 | 天津 | 上海 | 江苏 | 山东 |
安徽 | 浙江 | 江西 | 福建 | 深圳 |
广东 | 河北 | 湖南 | 广西 | 河南 |
海南 | 湖北 | 四川 | 重庆 | 云南 |
贵州 | 西藏 | 新疆 | 陕西 | 山西 |
宁夏 | 甘肃 | 青海 | 辽宁 | 吉林 |
黑龙江 | 内蒙古 |