数字字母分离c语言,C语言顺序结构 -C语言实现数字分离(附带源码)

桐桐上幼儿园了,学会了 1 位数字的加法运算,妈妈想考核桐桐的运算能力,于是每次给出一个四位数的整数,让桐桐计算出各位上的数字的和。妈妈想请你帮她写一个程序,能够随机产生一个四位数的整数,同时给出其各位上的数字的和,这样她就能够一边做自己的事,一边考核桐桐了。

问题分析

输入:随机产生一个四位数整数。

输出:输出整数和其各位数字的和。

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 展示了从一个四位数中拆分出其各位上的数字的过程。

c8be145da45634d39fad8b2d9c9e6140.gif

图 1:数字分离——拆分四位整数获得各位上的数字

算法描述

65e302ad938d6b9ddd2416bd85dcf419.gif

代码清单 1:C语言程序源代码(数字分离)

#include

#include

#include

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

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值