首页 > 其他分享 >分支与循环8——goto语句与练习题2

分支与循环8——goto语句与练习题2

时间:2024-12-21 13:32:18浏览次数:11  
标签:练习题 语句 goto again int printf input 输入

 一、先给大家讲一下goto语句呗

goto语句,goto接一个对象,就会跳到那个对象那里去,如图,执行goto again后,回到到红色框again:后面,继续执行pritnf,完了之后又执行goto,成为一个死循环

edb80c8ed4a6425d816fe7d5ff104e58.png

 goto语句不要随便乱用,可以跳过多个循环,而break一次只可以跳过一个循环如图,多个for循环嵌套,假设遇到disaster的突发情况,就要跳出去解决,此时我就可以用goto语句一步到位,而break需要两次以上才可以跳出去

7fd396c50a7b40d2973377e48f49d90f.png

 二、练习

1、请设计一个猜数字的游戏,在1-100之间,先生成一个随机数,当输入想猜的数字,比随机数大时提醒,猜大了;比随机数小,提醒猜小了;正好猜中则结束这一轮游戏。(关于生成随机数可以参考我的下一篇博文——如何输出随机数

2、设计一个1min内让电脑关机的程序,如果在屏幕上输入“大哥”,就取消关机。

 三、答案

第一题(关于生成随机数下一节给大家讲,大家有不懂的直接评论区留言哈,私信也可以)

//生成一个随机数
#define _CRT_SECURE_NO_WARNINGS 1
#include <stdio.h>
#include <time.h>          //用time函数时头文件
#include <stdlib.h>        //rand、srand函数头文件
void menu()                //设计一个菜单
{
	printf("**************************\n");
	printf("*******  1.play   ********\n");
	printf("*******  2.exit   ********\n");
	printf("**************************\n");
}
void game()                 //猜游戏函数
{
	int guess = 0;                 //初始化要猜测的数字
	int ret = rand()%100+1;        //最大32767,这个是一个规定,取一百的模后值为0-99,加一正好1-100
	while (1)                      //让循环永久成立,知道输入到要猜的数字
	{
		printf("请输入你要猜测的数字:>  ");
		scanf("%d", &guess);       //键盘输入要猜的数字
		if (ret < guess)           //输入的数字大了,继续猜
		{
			printf("猜大了\n");
		}
		else if (ret > guess)      //输入的数字小了,继续猜
		{
			printf("猜小了\n");
		}
		else if (ret == guess)    //猜中,跳出循环
		{
			printf("恭喜你猜对了\n");
			break;
		}
	}

}
int main()
{
	srand((unsigned int)time(NULL));   //配合rand使用,srand后面要unsigned int,这里直接强制转换
	int input = 0;                     //NULL表示空指针
	do
	{
		menu();
		printf("请选择:>");
		scanf("%d", &input);          //输入1/0才决定你玩不玩这个游戏
		switch (input)
		{
		case 0:
			printf("退出游戏");
			break;
		case 1:
			game();
			break;
		default :
			printf("输入信息有误\n");
			break;
		}
	} while (input);            //输入0时候,退出程序;输入一时可以开始游戏;输入其他数字时提示一下
	
	return 0;
}

第二题

system用于执行系统命令,shutdown -s -t 60 就是60s后关机的指令,shutdown -a 可以取消这个指令,记得打英文的双引号)

goto again就是回到again的那个地方后面,这里的goto也可以换成while。

strcmp用于比较字符串的内容,一样它会返回一个0的整型值,要用string.h的头文件

#define _CRT_SECURE_NO_WARNINGS 1
#include <string.h>
#include <stdio.h>
int main()
{
	char input[20] = { 0 };
	system("shutdown -s -t 60");         //执行一个系统指令格式如图,有空格要输入
again:
	printf("你的电脑将在60s内关机,输入大哥按回车,解除关机\n");
	scanf("%s", input);       
	if (strcmp(input, "大哥") == 0)
	{
		system("shutdown -a");           //取消关机的指令
		printf("老弟还得练");
	}
	else
	{
		goto again;                      //没有输入或是输入错误,回到again那里继续循环
	}
	return 0;
}

 

 

 

 

 

标签:练习题,语句,goto,again,int,printf,input,输入
From: https://blog.csdn.net/2401_89007258/article/details/144627818

相关文章

  • Java知识点——循环、条件语句与BigInteger类
    Java知识点一、循环结构1.for循环2.while循环3.for-each循环二、条件语句1.if-else2.switch-case三、break与continue关键字四、BigInteger类1.创建BigInteger对象2.运算一、循环结构Java提供了多种循环结构,用于多次执行某段代码,直到满足特定条件为止。循环结构......
  • 【C++基础】03、表达式 (判断语句与循环语句)
            一、判断语句        1.if 语句        2.switch 语句二、循环语句        1.for循环        2.while循环        3.do-while循环一、判断语句1.if 语句if语句是最基本的条件语句,它允许程序根据条......
  • 【零基础学Mysql】创建表以及数据库crud语句详细讲解
    前面文章我们学习了对数据库的操作,本章内容学习一下对表的操作,包括如何创建表,修改表的结构,以及对表中数据的操作。希望对你有所帮助。文章目录一.创建数据表二.修改表结构三.数据库CRUD语句3.1Insert语句(添加数据)3.2Update语句(更新数据)3.3Delect语句(删除数据)3.4Sel......
  • C#知识整理-语句
    申明语句关键字:var,const,refvar关键字申明变量时需要赋值,null值不能作为值赋给const关键字申明的变量不能再进行赋值ref关键字申明表示引用另一个变量,值的改变也跟随引用一起详细可见:stringgreeting="Hello";intx=1,y=2;Li......
  • MySQL Explain 分析SQL语句性能
     一、EXPLAIN简介使用EXPLAIN关键字可以模拟优化器执行SQL查询语句,从而知道MySQL是如何处理你的SQL语句的。分析你的查询语句或是表结构的性能瓶颈。(1)通过EXPLAIN,我们可以分析出以下结果:表的读取顺序数据读取操作的操作类型哪些索引可以使用哪些索引被实际使用表之间的引......
  • 变量或sql语句驼峰和下划线互转
    importredefcamel_to_snake(camel_str):"""将驼峰形式的字符串转换为下划线形式。参数:camel_str(str):驼峰形式的字符串,例如"userName"。返回:str:转换后的下划线形式的字符串,例如"user_name"。"""s1=re.sub('......
  • 如何分析和优化SQL语句的执行计划?
    理解执行计划的重要性执行计划是数据库管理系统(DBMS)在执行SQL语句时所采取的步骤和方法的描述。它展示了数据库如何访问表、使用索引,以及以何种顺序连接表等信息。通过分析执行计划,可以找出SQL语句执行效率低下的原因,如全表扫描、不合适的索引使用等,从而有针对性地进行优化。......
  • C语言关于return在循环语句中的使用(求一个数是否为素数的过程中的思考)
    intjk(inta)//定义一个jk函数判断a是否是素数,是返回1,不是则返回0.{ inti;if(a<2){return0;} elseif(a==2) { return1; } else { for(i=2;i<=a-1;i++) { if(a%i==0) { return0; } } return1; } }intmain(......
  • Java -chapter3控制语句
    1.switch语句switch(choice){case1->...case2->...case3->...case4->...default->System.out.println("Badinput");}case的类型charbyteshortint枚举enum字符串多个变量可用,分隔例:Stringinput=...;switch(inpu......
  • CLion配置cout打印语句快捷键
    点击菜单栏的File->Settings->Editor->LiveTemplates   点击Define,选择C++。 点击Apply和OK保存。当我们sout时,自动出现打印语句。  ......