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

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

算法描述

代码清单 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

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

  1. java链式结构_java语言实现队列顺序结构与链式结构

    本文主要向大家介绍了java语言实现队列顺序结构与链式结构,通过具体的内容向大家展示,希望对大家学习java语言有所帮助. 队列的顺序存储结构实现 public class Queue{ privat ...

  2. c语言比较函数memcmp,c语言函数memcmp()如何比较内存前n个字节实例源码介绍

    c语言函数memcmp()如何比较内存前n个字节实例源码介绍.引入头文件:#include 定义memcmp()函数:int memcmp (const void *s1, const void *s ...

  3. c语言远控,远控鼠标!C语言简单编程:整舍友必备+附送实例源码!

    远控鼠标!C语言简单编程:整舍友必备+附送实例源码!-1.jpg (10.71 KB, 下载次数: 0) 2018-10-11 05:24 上传 关注<一碳科技>有更多干货等着你哦! 远控 ...

  4. c语言旅游系统,C语言计算旅行花费附带源码

    C语言计算旅行花费附带源码 来源:www.xysxzl.com时间:2021-03-01 10:56 旅游程序 国庆节桐桐一家想自驾旅游,目的地有北京.海南.云南等许多好玩的地方可选择,在已知汽车平均 ...

  5. c语言 转换字母 顺序结构,C语言程序设计 顺序结构程序设计 C教学设计3单元V1.0.doc...

    教学设计 河北工业职业技术学院 "C语言程序设计"教学设计 系 别: 计算机技术系 设计教师: 宋铁桥 设计时间: 2017年4月25日 教学内容 第三单元 顺序结构程序设计 授课 ...

  6. c语言程序设计的顺序结构的常用控制语句,C语言程序设计教程-第03课-顺序结构的程序设计.ppt...

    <C语言程序设计教程-第03课-顺序结构的程序设计.ppt>由会员分享,可在线阅读,更多相关<C语言程序设计教程-第03课-顺序结构的程序设计.ppt(21页珍藏版)>请在人人 ...

  7. C语言游戏: 俄罗斯方块(Tetris)@兼谈程序优化方法 [源码+exe下载]

    消除重复:如何将程序逻辑与数据分开? ----俄罗斯方块(Tetris)@兼谈程序优化方法 背景提示: 1,数据,是程序设计的根本.因为任何程序都可以看作是一组数据,和作用于其上的一组操作,这也是面向 ...

  8. c语言循环设计思想结构,C语言程序设计_05循环结构程序设计讲述.pptx

    C语言程序设计_05循环结构程序设计讲述 第5章 循环结构程序设计5.1 while循环结构5.2 do-while循环结构5.3 for循环结构5.4 与循环有关的控制语句5.5 3种循环语句的比较 ...

  9. C语言二分法在一个有序数组查找数的算法(附完整源码)

    C语言二分法在一个有序数组查找数 二分法在一个有序数组查找数 C语言分治法来计算pow(x,y)完整源码(定义,实现,main函数测试) 二分法在一个有序数组查找数 给定一个排序数组和一个数字. 用户 ...

  10. C语言零基础项目:自制军棋游戏!详细思路+源码分享

    每天一个C语言小项目,提升你的编程能力! 这是一款由 shareli 自创规则的军旗游戏,具体的游戏规则如下: 棋盘大小:6×6. 棋子总数:36. 敌对双方:红,蓝. 棋子类别:红棋(红方操作,14 ...

最新文章

  1. html里面的crossorigin属性,HTML5 标签里的 crossorigin 属性到底有什么用? | Chrisyue's Blog...
  2. 让 Windows 7 定时待机
  3. linux FTP 批量下载文件
  4. 【codevs1869】硬币购物,背包+神奇的容斥原理
  5. java 去系统运行时间,JAVA WEB获取系统运行时间
  6. java http 面试题_Java面试高级篇—说说TCP,UDP和socket,Http之间联系和区别面试题12期...
  7. Windows.document对象
  8. Flutter Android权限问题
  9. 射线法判断点在多边形内适用范围_电力行业NDT无损检测技术应用大盘点!
  10. 开源软件许可协议介绍
  11. Eclipse在桌面上创建的快捷方式打不开
  12. 【C语言】从字符串中提取IP地址最简洁的方法
  13. 最全各国人口数据,人口的高出生率与高死亡率竟然是这些国家
  14. 打工宣言“我选择打工”走红,网友:言之有理,不得不赞同!
  15. 曲线拟合合集:regress,polyfit,robust,cfun等
  16. NOIP模拟赛 17.10.10
  17. 将小图标转换成字体图标代码
  18. 十只老鼠在1000瓶药水中找一瓶有毒的
  19. Java实现-中位数
  20. 哪有岁月静好,不过有人在为你负重前行

热门文章

  1. 如何在下半生走上正途(From 白板报)
  2. 背后的力量| 华云数据助力华夏建龙升级IT基础设施 实现降本增效
  3. python蚁群算法路径规划_使用python实现蚁群算法
  4. 多重继承关系的初始化顺序
  5. 著名博客jimdo免费版停止运行
  6. n个小球放入m个盒子中_【转】排列组合 n个球放入m个盒子m问题 总结
  7. Qt学习——利用QToolBox实现QQ好友列表
  8. matlab中的神经网络怎么用,matlab如何编写神经网络
  9. Nmap中NSE数据文件分析
  10. vector 内存释放