您的位置:首页 > 其它

【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;
}


运行结果如下:

内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐