数字分离(splitnum)

问题y9d100150满分答卷(100150.com)-青少年编程等级考试及竞赛题库

桐桐上幼儿园了,学会了1位数字的加法运算,妈妈想考核桐桐的运算能力,于是每次给出一个四位数的整数,让桐桐计算出各位上的数字的和。妈妈想请你帮她写一个程序,能够随机产生一个四位数的整数,同时给出其各位上的数字的和,这样她就能够一边做自己的事,一边考核桐桐了。y9d100150满分答卷(100150.com)-青少年编程等级考试及竞赛题库

问题分析y9d100150满分答卷(100150.com)-青少年编程等级考试及竞赛题库

输入:随机产生一个四位数整数。y9d100150满分答卷(100150.com)-青少年编程等级考试及竞赛题库

输出:输出整数和其各位数字的和。y9d100150满分答卷(100150.com)-青少年编程等级考试及竞赛题库

(1)首先用C语言的数学库函数rand()产生一个随机的四位数整数。y9d100150满分答卷(100150.com)-青少年编程等级考试及竞赛题库

rand()函数能够生成在0~RAND_MAX的任意整数。rand()函数和常量RAND_MAX均在库文件stdlib.h中定义,一般RAND_MAX的默认值为最大的int整型数32767。要生成a~b的任意整数(包含a和b),可以用以下方式:y9d100150满分答卷(100150.com)-青少年编程等级考试及竞赛题库

数字分离(splitnum)数字分离(splitnum)

因而,要生成任意四位整数就可以用1000+rand()%9000实现。y9d100150满分答卷(100150.com)-青少年编程等级考试及竞赛题库

事实上,rand()函数产生的是一个伪随机数,重复调用该函数所产生的随机数字是相同的。要想每次执行产生不同的随机数,就需要用srand()函数进行随机初始化。y9d100150满分答卷(100150.com)-青少年编程等级考试及竞赛题库

随机初始化函数srand()可以设置随机数生成器的种子,不同的种子将产生不同的随机数。在程序运行过程中时间是一直变化的,所以我们可以借助time.h库中的time(NULL)函数返回计算机当前的时间数,把它作为随机数生成器的种子,从而在每次执行rand()函数时产生一个不同的随机数。将当前时间设置为随机数生成器种子的代码如下:y9d100150满分答卷(100150.com)-青少年编程等级考试及竞赛题库

数字分离(splitnum)数字分离(splitnum)

(2)拆分这个四位整数,获得其各位上的数字。y9d100150满分答卷(100150.com)-青少年编程等级考试及竞赛题库

拆分一个数可以利用%和/运算符实现。假设a、b、c、d分别表示四位整数number的个、十、百、千位上的数,则它们的值可以分别表示为:y9d100150满分答卷(100150.com)-青少年编程等级考试及竞赛题库

数字分离(splitnum)数字分离(splitnum)

图5.4展示了从一个四位数中拆分出其各位上的数字的过程。y9d100150满分答卷(100150.com)-青少年编程等级考试及竞赛题库

数字分离(splitnum)数字分离(splitnum)

图5.4 数字分离:拆分四位整数获得各位上的数字y9d100150满分答卷(100150.com)-青少年编程等级考试及竞赛题库

算法描述y9d100150满分答卷(100150.com)-青少年编程等级考试及竞赛题库

自然语言描述y9d100150满分答卷(100150.com)-青少年编程等级考试及竞赛题库

数字分离(splitnum)数字分离(splitnum)

 C语言程序源代码y9d100150满分答卷(100150.com)-青少年编程等级考试及竞赛题库
数字分离(splitnum)y9d100150满分答卷(100150.com)-青少年编程等级考试及竞赛题库

关 键 词

数字分离(splitnum)

相关教程

提示声明

  • 免责声明:本站资源均来自网络或者用户投稿,仅供用于学习和交流:如有侵权联系删除!

猜你喜欢