【Ex.】随机产生两个数计算之和

这个程序的重点在于随机!而不是你人为的去输入两个数然后计算机为你计算。这里是反过来电脑给你数字你来计算。
伪随机函数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;
}

运行结果如下:
这里写图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值