C语言知识(6)

C语言实例

猜数字游戏

//猜数字游戏
#include<stdlib.h>
#include<time.h>
//RAND_MAX//0-32767
void menu()
{
        printf("***********************\n");
        printf("*******1.play**********\n");
        printf("*******0.exit**********\n");
        printf("***********************\n");
}
void game()
{
        printf("猜数字!\n");
        //1、生成随机数
        //将time()强制转换为无符号整型
        int ret = 0;
        ret=rand()%100+1;//1-100
        int num = 0;
        //printf("%d\n", ret);
        //2、猜数字
        while(1)
        {
               printf("请输入一个数:\n");
               scanf("%d", &num);
               if (num > ret)
               {
                       printf("大了\n");
               }
               else if (num < ret)
               {
                       printf("小了\n");
               }
               else
               {
                       printf("恭喜你,猜中了!\n");
                       break;
               }
        }
}
int main()
{
        int input = 0;
        srand((unsigned int)time(NULL));//随机数生成器 拿时间戳来设置随机数的生成起始点//时间戳 当前计算机时间-计算机的起始时间(1970.1.1.0.0)随时变化
        do
        {
               menu();
               printf("请选择:\n");
               scanf("%d", &input);
               switch (input)
               {
               case 1:
                       game();
                       break;
               case 0:
                       printf("退出游戏!\n");
               default:
                       break;
               }
        } while (input);
}

计算器

//实现一个计算器
void menu()
{
        printf("********************\n");
        printf("**1.add     2.sub***\n");
        printf("**3.mul     4.div***\n");
        printf("***** 5.exit *******\n");
        printf("********************\n");
}
int Add(int x, int y)
{
        return x + y;
}
int Sub(int x, int y)
{
        return x - y;
}
int Mul(int x, int y)
{
        return x * y;
}
int Div(int x, int y)
{
        return x / y;
}
void Calc(int(*pf)(int, int))//回调函数
{
        int x = 0;
        int y = 0;
        printf("请输入两个操作数:>");
    scanf("%d%d", &x, &y);
    printf("%d\n", pf(x, y));
}
int main()
{
        int input=0;
        int x = 0;
        int y = 0;
        //int(*pf[])(int, int) = { 0,Add,Sub,Mul,Div };//函数指针数组
        do
        {
               menu();
               printf("请选择:>");
               scanf("%d", &input);
               //if (input >= 1 && input <= 4)
               //{
               //      printf("请输入两个操作数:>");
               //      scanf("%d%d", &x, &y);
               //      int ret = pf[input](x, y);//调用函数指针的数组 转移表
               //      printf("%d\n", ret);
               //}
               //else if (input == 0)
               //{
               //      printf("退出\n");
               //}
               //else
               //{
               //      printf("选择错误");
               //}
               switch (input)
               {
               case 1:
                       Calc(Add);
                       break;
               case 2:
                       Calc(Sub);
                       break;
               case 3:
                       Calc(Mul);
                       break;
               case 4:
                       Calc(Div);
                       break;
               case 0:
                       printf("退出\n");
                       break;
               default:
                       printf("选择错误\n");
                       break;
               }
        } while (input);
}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值