猜数字1-100大小的游戏(选择结构以及循环结构简单小结)

本文介绍了一个使用C语言编写的猜数字游戏。游戏由计算机生成1到100之间的随机数,用户有10次机会猜测,猜对则显示"正确,你太棒了!",猜错会提示"太小了"或"太大了"。游戏结束后询问用户是否继续,输入1继续,输入0退出。程序涉及循环结构、选择结构和函数的使用。
摘要由CSDN通过智能技术生成

       由计算机“想”一个1~100之间的整数,让用户去才,才对了,就输出“正确,你太棒了!”,否则输出“太小了或太大了”提示用户所采的数不正确。每次游戏最多允许用户猜10次,即在10次内猜对了,或者猜了10次都不对,都会结束游戏,在结束了一次游戏之后,并不结束程序运行,而是询问用户是否继续游戏,如果用户键入数字“1”则开始新游戏,如果用户键入“0”,则退出程序运行。

本程序程序用到以下头文件

#include<stdio.h>
#include<time.h>
#include<stdlib.h>

 1.头文件“stdlib.h”用于调用随机函数rand(),随机函数rand()可以产生一个[0,RAND_MAX]之间的整数,使用时需要包含头文件“stdlib.h”。如果想要使得计算机生成一个1~100之间的数,需要进行计算rand()%100+1。

2.每次调用函数rand()所产生的随机数序列是一样的,需要调用函数srand()为函数rand()设置随机数种子。只要随机数种子不同,函数rand()就会产生不同的随机数序列。可以使用函数time()读取计算机的时钟值,并把该值设置为随机数种子。使用函数time()时,需要包含头文件“time.h”,time(NULL)的返回值会被转换为一个无符号整数而作为随机数种子。

本程序可用到的程序结构有:选择结构以及循环结构

//常见的4种简单的选择结构(也可运用循环内嵌语句)
//第一种
if(表达式)
{
    语句;
}
//第二种
if(表达式)
    语句;
else
    语句;
//第三种
if(表达式)
    语句;
    else if(表达式)
        语句;
        else if(表达式n-1)
            语句;
            else
                语句;
//第四种switch语句
switch(表达式)
{
    case (常量表达式1):
    语句1;
    break;
    case(常量表达式2):
    语句2;
    break;
    ......
    case(常量表达式n-1):
    语句n-1;
    break;
    default:
    语句n;
}


//常见的三种循环结构
//第一种
for(循环变量赋初值;循环条件;循环变量增值)
{
    语句;
}
//第二种;
循环变量赋初值;
while(循环条件)
{
    语句;
循环变量增值;
}
//第三种
循环变量赋初值;
do
{
    语句;
    循环变量增值;

}while(循环条件);

本程序也可运用自定义函数,使得程序更加的简洁,自定义函数形式如下:

函数类型   函数名(形式参数表列)

{

说明部分;

语句部分;

}  

 以下为本程序的代码:

#include<stdio.h>
#include<time.h>
#include<stdlib.h>

void menu()
{
	printf(" 输入1.开玩 \n");
	printf(" 输入0.开溜\n");
}
void game()
{

	int magic, guess, count = 0;
	srand(time(NULL));
	magic = rand() % 100 + 1;//计算机随机数的生成
	do
	{
		printf("请猜一个0~100之间的整数:");
		scanf_s("%d", &guess);
		count++;   /*计数器*/
		if (guess > magic)
			printf("错误,太大了!\n");
		else if (guess < magic)
			printf("错误,太小了!\n");
		else
			printf("正确,太棒了!\n");
	} while (guess != magic && count < 10);
	printf("猜了%d次\n", count);

}
int main()
{
	int i = 0;
	srand((unsigned)time(NULL));

	do
	{
		menu();
		scanf_s("%d", &i);
		switch (i)
		{
		case 1:
			game();
			break;
		case 0:
			printf("退出游戏\n");
			break;
		default:
			printf("请重新输入:\n");
			break;
		}
	} while (i);
	return 0;
}

本程序用到循环结构、选择结构以及函数的自定义,本函数可用上面所说到的几种选择以及循环结构进行替换,也可以运用函数调用的形式对自定义函数所放位置进行修改;也可以用goto语句对程序进行改写,如下:

#include<stdio.h>
#include<stdlib.h>
#include<time.h>
int main()
{   
	again:int magic, guess, count = 0,x;//again为语句标识符
	srand(time(NULL));
	magic = rand() % 100 + 1;
	
	do
	{
		printf("请猜一个0-100之间的整数:");
		scanf_s("%d",&guess);
	count++;//计数器
	if (guess > magic)
			printf("错误,太大了!\n");
    else if (guess < magic)
			printf("错误,太小了!\n");
		else
		printf("正确,太棒了!\n");

	} while (guess != magic && count < 10);
    printf("猜了%d次\n", count);
    printf("是否继续游戏:\n");
		scanf_s("%d", &x);
	if (x == 1)
    {
		goto again;//使程序再次进入上面循环
	}
	else
	{
		printf("结束游戏");
	}
	return 0;
}

 以上是关于此类问题的总结,本人第一次所写,第一次发布文章,有何问题还望多多指正。

  • 5
    点赞
  • 13
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值