【Ex.】随机产生两个数计算之和
2017-07-13 16:18
197 查看
这个程序的重点在于随机!而不是你人为的去输入两个数然后计算机为你计算。这里是反过来电脑给你数字你来计算。
伪随机函数
代码如下:
实际上当你运行以上代码时你会发现,它总是重复你第一次运行时出现的那两个数字,然而我就是,当我运行不管多少次都是这两个数字。
运行结果如下:
程序是没有任何问题的,但为什么总是出现相同的数字呢!所以我们需要对程序做改进。
当我们加上一行代码和一个头文件时,我们的数字做到了真正的随机!
运行结果如下:
在随机函数上我也只是略懂,希望大家多多指点。
实际上这个程序还可以做的更加完善,当我们输错答案之后,提醒我们错误再输入一次,当输入次数达到三次以后,将不再提示输入,将直接给出答案。这与用户登录界面有一点类似。
代码如下:
运行结果如下:
伪随机函数
int rand()其原型在“stdlib.h”中,每调用一次这个函数,就产生一个0到32767之间的随机数。 一般情况下,如果要得到[a,b]之间的随机数,可用表达式a+rand()%(b-a)。
代码如下:
#define _CRT_SECURE_NO_WARNINGS 1 #include<stdio.h> #include<stdlib.h> int main() { int sum; int a = rand() % 100; int b = rand() % 100; printf("%d + %d = ", a, b); scanf("%d", &sum); if (sum == a + b) { printf("You are right!\n"); } else { printf("You are wrong!\n"); } system("pause"); return 0; }
实际上当你运行以上代码时你会发现,它总是重复你第一次运行时出现的那两个数字,然而我就是,当我运行不管多少次都是这两个数字。
运行结果如下:
程序是没有任何问题的,但为什么总是出现相同的数字呢!所以我们需要对程序做改进。
#define _CRT_SECURE_NO_WARNINGS 1 #include<stdio.h> #include<stdlib.h> #include <time.h> int main() { int sum; srand((unsigned int)time(NULL)); int a = rand() % 100; int b = rand() % 100; printf("%d + %d = ", a, b); scanf("%d", &sum); if (sum == a + b) { printf("You are right!\n"); } else { printf("You are wrong!\n"); } system("pause"); return 0; }
当我们加上一行代码和一个头文件时,我们的数字做到了真正的随机!
运行结果如下:
在随机函数上我也只是略懂,希望大家多多指点。
实际上这个程序还可以做的更加完善,当我们输错答案之后,提醒我们错误再输入一次,当输入次数达到三次以后,将不再提示输入,将直接给出答案。这与用户登录界面有一点类似。
代码如下:
#define _CRT_SECURE_NO_WARNINGS 1 #include<stdio.h> #include<stdlib.h> #include <time.h> int main() { int sum; int count=0; srand((unsigned int)time(NULL)); int a = rand() % 100; int b = rand() % 100; do { printf("%d + %d = ", a, b); scanf("%d", &sum); if (sum == a + b) { printf("You are right!\n"); break; } else { printf("You are wrong!\n"); count++; } } while (count < 3); if (count == 3) { printf("The answer is %d\n", a + b); } system("pause"); return 0; }
运行结果如下:
相关文章推荐
- ex的DateChooser控件中如何利用selectableRange属性计算选中两个日期间天数的例子
- 第三个程序:生成两个个ffH以内的随机数,并选择随机的运算符计算[但是好像非随机吧,cpu太快了]
- 随机产生100个数,随机选择98个数存入一个数组,求那两个没有存入数组?
- 随机产生30个两个两位数相加的题目(java)
- 【C语言助教】35名学生,每名学生4门课程,随机产生,计算平均成绩,按平均成绩排名排名
- 计算随机抛1000次的骰子各个数字产生的概率。
- 随机产生30个两位数的四则运算(包括真分数的计算)
- C#.NET产生在两个值之间的不重复随机数组
- 设计程序,单击【随机数】按钮,使用Math对象的random函数产生一个0-100之间(含0-100)的随机整数,并在对话框中显示,如下图。单击【计算】按钮,计算该随机数的平方、平方根和自然对数,保留两位小数,并在对话框中显示,如下图。
- Java编程:随机产生两个小于1000的正整数,若两个数均小于10,先将他们都扩大50倍,否则不改变这两个数。最后求这两个数的和并将结果输出。
- 9.在数学计算或数字分析中,经常会用到计算两个数的最大公约数的问题。即:输入两个正整数,当两个数字有一个不是正整数时会产生异常。当输入非整数数字时,也产生异常。输入无错误后,可计算两个数的最大公约数。
- python随机产生100000个数计算满足条件的比例
- mysql 计算两个时间的间隔
- java计算两个日期相差多少天小时分钟等
- 产生不重复的随机牌
- 两个日期计算
- 用 DATEDIF函数 计算两个日期之间的年\月\日间隔数
- @大脑练习: 计算两个矩阵的乘积
- 两个日期之间闰年数计算方法探索
- 输入两个整数a和b,及另一正整数c,计算a/b,结果精确到小数点后c位