C语言实现数字分离(附带源码)
桐桐上幼儿园了,学会了 1 位数字的加法运算,妈妈想考核桐桐的运算能力,于是每次给出一个四位数的整数,让桐桐计算出各位上的数字的和。妈妈想请你帮她写一个程序,能够随机产生一个四位数的整数,同时给出其各位上的数字的和,这样她就能够一边做自己的事,一边考核桐桐了。
输出:输出整数和其各位数字的和。
1) 首先用 C语言的数学库函数 rand( ) 产生一个随机的四位数整数。
rand( ) 函数能够生成在 0~RAND_MAX 的任意整数。rand( ) 函数和常量 RAND_MAX 均在库文件 stdlib.h 中定义,一般 RAND_MAX 的默认值为最大的 int 整型数 32767。要生成 a~b 的任意整数(包含 a 和 b),可以用以下方式:
事实上,rand( ) 函数产生的是一个伪随机数,重复调用该函数所产生的随机数字是相同的。要想每次执行产生不同的随机数,就需要用 srand( ) 函数进行随机初始化。
随机初始化函数 srand( ) 可以设置随机数生成器的种子,不同的种子将产生不同的随机数。在程序运行过程中时间是一直变化的,所以我们可以借助 time.h 库中的 time(NULL) 函数返回计算机当前的时间数,把它作为随机数生成器的种子,从而在每次执行 rand( ) 函数时产生一个不同的随机数。
将当前时间设置为随机数生成器种子的代码如下:
2) 拆分这个四位整数,获得其各位上的数字。
拆分一个数可以利用
图 1 展示了从一个四位数中拆分出其各位上的数字的过程。
图 1:数字分离——拆分四位整数获得各位上的数字
代码清单 1:C语言程序源代码(数字分离)
运行结果:
声明:《C语言系列教程》为本站“54笨鸟”官方原创,由国家机构和地方版权局所签发的权威证书所保护。
问题分析
输入:随机产生一个四位数整数。输出:输出整数和其各位数字的和。
1) 首先用 C语言的数学库函数 rand( ) 产生一个随机的四位数整数。
rand( ) 函数能够生成在 0~RAND_MAX 的任意整数。rand( ) 函数和常量 RAND_MAX 均在库文件 stdlib.h 中定义,一般 RAND_MAX 的默认值为最大的 int 整型数 32767。要生成 a~b 的任意整数(包含 a 和 b),可以用以下方式:
a + rand( ) % (b + 1 - a); //rand( ) % (b + 1 - a) 的最大值是 b + 1,最小值是 0因而,要生成任意四位整数就可以用
1000+rand( )%9000
实现。事实上,rand( ) 函数产生的是一个伪随机数,重复调用该函数所产生的随机数字是相同的。要想每次执行产生不同的随机数,就需要用 srand( ) 函数进行随机初始化。
随机初始化函数 srand( ) 可以设置随机数生成器的种子,不同的种子将产生不同的随机数。在程序运行过程中时间是一直变化的,所以我们可以借助 time.h 库中的 time(NULL) 函数返回计算机当前的时间数,把它作为随机数生成器的种子,从而在每次执行 rand( ) 函数时产生一个不同的随机数。
将当前时间设置为随机数生成器种子的代码如下:
srand(time(NULL));
2) 拆分这个四位整数,获得其各位上的数字。
拆分一个数可以利用
%
和/
运算符实现。假设 a、b、c、d 分别表示四位整数 number 的个、十、百、千位上的数,则它们的值可以分别表示为:
a = number % 10; //个位数 b = bumber / 10 % 10 //十位数 c = number / 100 % 10 //百位数 d = number / 1000 //千位数
图 1 展示了从一个四位数中拆分出其各位上的数字的过程。
图 1:数字分离——拆分四位整数获得各位上的数字
算法描述
代码清单 1:C语言程序源代码(数字分离)
#include <stdio.h> #include <stdlib.h> #include <time.h> int main( ) { system("color 70"); int number,a,b,c,d,s; srand(time(NULL)); number = rand()%9000+1000; a = number % 10; b = number / 10 % 10; c = number / 100 % 10; d = number / 1000; s = a + b + c + d; printf("随机生成四位整数:%d\n",number); printf("各位数字的和:%d + %d + %d + %d = %d\n",d,c,b,a,s); system("pause"); return 0; }
运行结果:
随机生成四位整数:9493
各位数字的和:9 + 4 + 9 + 3 = 25
声明:《C语言系列教程》为本站“54笨鸟”官方原创,由国家机构和地方版权局所签发的权威证书所保护。