c/c++:for循环语句,分号不可省略,表达式可以省略,猜数字游戏,跳转语句continue,break,避免写goto

news2025/6/18 22:23:34

c/c++:for循环语句,分号不可省略,表达式可以省略,猜数字游戏,跳转语句continue,break,避免写goto

2022找工作是学历、能力和运气的超强结合体,遇到寒冬,大厂不招人,此时学会c++的话,
我所知道的周边的会c++的同学,可手握10多个offer,随心所欲,而找啥算法岗的,基本gg
提示:系列c++学习的基础和高阶知识,用于公司生产实践中,实实在在的公司部署产品要用的,因为c++速度快,
而java和Python速度慢,自然往硬件里面部署算法啥的,都得用c++或者c,因此本科学的c很重要,后来的Python或者java就没有那么重要了,
c/c++系列文章:
【1】c++:c语言优缺点,visual studio2019如何新建项目,写hello world程序
【2】c/c++:gcc安装,gcc编译hello world文件,system函数调用系统命令,sleep函数
【3】linux下gcc的编译过程和功能,预处理,编译,汇编,链接,.c预处理为.i文件.s文件.o文件.exe文件
【4】c/c++:windows平台下依赖的动态库,c底层是汇编语言,程序断点调试,反汇编,vs快捷键
【5】c/c++:数据类型,常量变量,标识符,有符号整型,无符号unsigned,字符类型,字符串类型,实数类型,浮点型,科学计数法
【6】c/c++:2进制、8进制、10进制、16进制和进制之间的转换,c语言输出匹配格式%
【7】c/c++:原码,反码,补码和常见的数据类型取值范围,溢出
【8】c/c++:类型限定符,printf输出格式,putchar,scanf,getchar
【9】c/c++:算术运算符,赋值运算,逻辑运算,比较运算,三目运算,逗号运算,数据类型转换
【10】c/c++:顺序结构,if else分支语句,do while循环语句,switch case break语句


文章目录

  • c/c++:for循环语句,分号不可省略,表达式可以省略,猜数字游戏,跳转语句continue,break,避免写goto
    • @[TOC](文章目录)
  • c/c++:for循环语句
  • for循环的变体,不太规矩的循环
  • 猜数字游戏
  • for嵌套循环
  • 练习打印电子时钟
  • 打印99乘法表
  • 跳转语句continue,break
  • goto关键字,了解即可
  • 总结

c/c++:for循环语句

for(初始化表达式1;判别表达式2;表达式3)
{
循环体
}

先执行初始化表达式1,初始化;

再执行判别表达式2,如果判别为真
去执行循环体
然后执行循环表达式3
再执行表达式2
然后执行循环表达式3
直到不满足条件,退出
在这里插入图片描述
初始化表达式1只执行1次

判别表达式2是循环和终止条件

表达式3是自增或者自减

咱们看看求1–100的和


void f27(void)
{
	//咱们看看求1--100的和
	int sum = 0;
	for (int i = 1; i <= 100; i++)
	{
		sum += i;//每次都累加
	}
	printf("%d\n", sum);
}

int main(void)
{
	f27();

	system("pause");
	return 0;
}

在这里插入图片描述

for循环的变体,不太规矩的循环

for的表达式有3个
但是仨都可以变换或者省略
分号不可以省略;


void f28(void)
{
	//咱们看看求1--100的和
	int sum = 0;
	int i = 1;
	for (; i <= 100; i++)
	{
		sum += i;//每次都累加
	}
	printf("%d\n", sum);
}

void f28(void)
{
	//咱们看看求1--100的和
	int sum = 0;
	int i = 1;
	for (; ; i++)
	{
		if (i > 100) break;
		sum += i;//每次都累加
	}
	printf("%d\n", sum);
}


void f28(void)
{
	//咱们看看求1--100的和
	int sum = 0;
	int i = 1;
	for (; ; )
	{
		if (i > 100) break;
		sum += i;//每次都累加
		i++;
	}
	printf("%d\n", sum);
}

在这里插入图片描述
咋仨都是同一个结果
你看看,反正表达式仨个都可以省略

但是最好别这么搞
基础标准版for循环最合适

方便。

表达式有多个呢,也行


void f29(void)
{
	int i = 0;
	int a = 0;
	for (i = 1, a = 3; i < 10, a < 20; i++, a += 5)
	{
		printf("%d %d ", i, a);
	}
}

初始条件2个
判断条件时要同时满足的
自增条件随你加

在这里插入图片描述
在这里插入图片描述

猜数字游戏

生成一个随机数
需要添加随机数种子,利用当前的系统时间,来生成随机数

srand(time(NULL));


#include<stdlib.h>  // system,srand
#include<time.h>  //time函数

void f30(void)
{
	srand(time(NULL));//添加随机数种子
	//返回随机数
	int n = rand() % 100;//模的话,只能是0-99了
	//循环输入数据,猜
	
	int x;
	//while实现
	
	while (1)//不等继续猜
	{
		printf("请猜数字:\n");
		scanf("%d", &x);//你还得提示用户
		if (x == n)
		{
			printf("恭喜你,你猜读对了\n");
			break;
		}
		else if (x > n) printf("你猜太大了!\n");
		else printf("你猜太小了\n");
	}
	
}

int main(void)
{
	f30();

	system("pause");
	return 0;
}

在这里插入图片描述
for循环也可以实现哦


void f31(void)
{
	srand(time(NULL));//添加随机数种子
	//返回随机数
	int n = rand() % 100;//模的话,只能是0-99了
	//循环输入数据,猜

	int x;
	//while实现

	for (;;)//不等继续猜
	{
		printf("请猜数字:\n");
		scanf("%d", &x);//你还得提示用户
		if (x == n)
		{
			printf("恭喜你,你猜读对了\n");
			break;
		}
		else if (x > n) printf("你猜太大了!\n");
		else printf("你猜太小了\n");
	}

}


在这里插入图片描述
在这里插入图片描述

常见的scanf错误
不要用printf格式
在这里插入图片描述
\n绝对不能放到scanf中!!

for嵌套循环

这些将来设计算法的时候,经常用的。

经常会遇到o(n平方的)算法复杂度,你需要优化为o(nlogn)或者o(n)
o(n立方的)优化为o(n平方的)

在这里插入图片描述
这个看起来就是o(n平方)
外循环执行1次
内循环执行10次

外面n次,里面也n次,其复杂度计算不就是o(n平方)吗
懂?

在这里插入图片描述
这个的话,外面o(n方),最里面每次都是o(n)
那不就是o(n立方)吗

easy?懂?

练习打印电子时钟

时分秒,60进制

逢60进位


#include<Windows.h>  //Sleep
void f32(void)
{
	int i, j, k;//时分秒
	for (i = 14; i < 24; i++)
	{//时
		for (j = 46; j < 60; j++)
		{//分钟
			for (k = 0; k < 60; k++)
			{//秒
				printf("%.2d:%.2d:%.2d\n", i, j, k);//时分秒
				Sleep(1000);//睡眠毫秒
				system("cls");//清屏
			}
		}
	}
}

int main(void)
{
	f32();

	system("pause");
	return 0;
}

在这里插入图片描述
很简单的

打印99乘法表

11
1
2

91
9
2
等等

不就是外面1–9
里面1–9

void f33(void)
{
	for (int i = 1; i < 10; i++) {
		for (int j = 1; j < 10; j++)
		{
			printf("%.2d × %.2d = %.2d ",i,j, i * j);
		}
		printf("\n");
	}
}

在这里插入图片描述
非常简单的事情

重复的就不用了



void f33(void)
{
	for (int i = 1; i < 10; i++) {
		for (int j = 1; j <= i; j++)
		{
			printf("%.2d × %.2d = %.2d ",i,j, i * j);
		}
		printf("\n");
	}
}

在这里插入图片描述
看看你能倒过去打印吗


void f34(void)
{
	for (int i = 9; i >= 1; i--) {
		for (int j = 1; j <= i; j++)
		{
			printf("%d × %d = %d\t", j, i, i * j);
		}
		printf("\n");
	}
}

在这里插入图片描述

跳转语句continue,break

break是直接跳出循环,不玩了

在这里插入图片描述
在这里插入图片描述

continue是跳过当前后续的语句,继续下一个循环

void f35(void)
{
	for (int i = 0; i < 10; i++)
	{
		if (i == 3) continue;//跳过3
		printf("%d\n", i);
	}
}

在这里插入图片描述
上面的代码,i=3时,结束本次循环,但是继续下一个循环,本次不玩了
在这里插入图片描述

在这里插入图片描述

goto关键字,了解即可

太灵活了
最好别用

在这里插入图片描述


void f36(void)
{
	int i = 0;
	L:
	printf("1111111111\n");
	printf("1111111111\n");
	printf("1111111111\n");

	printf("2222222222\n");
	i++;
	if (i == 5) system("pause");
	goto L;
}


int main(void)
{
	f36();

	system("pause");
	return 0;
}

在这里插入图片描述
最好别这么搞
这可是死循环了
别的代码没得玩了
可怕。

它只在函数内部生效
在这里插入图片描述
在这里插入图片描述
你直接去j,请问j没有初始化,它等于多少呢?????

所以不推荐使用goto,懂了吧?


总结

提示:重要经验:

1)
2)学好c++,即使经济寒冬,手握10个大厂offer绝对不是问题!
3)笔试求AC,可以不考虑空间复杂度,但是面试既要考虑时间复杂度最优,也要考虑空间复杂度最优。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/411737.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

树莓派 QT项目开机自启动

我自己用qt设置了一个界面&#xff0c;如何让他开机自启动呢&#xff1f; 目录 1.生成qt项目的可执行文件 2. 编写一个自启动脚本 3.重启树莓派 1.生成qt项目的可执行文件 QT项目的可执行文件就是.exe文件。首先在qt中打开&#xff0c;点击红色方框图标&#xff0c;选择Re…

vue+springboot 上传文件、图片、视频,回显到前端。

效果图 预览&#xff1a; 视频&#xff1a; 设计逻辑 数据库表 前端vue html <div class"right-pannel"><div class"data-box"><!--上传的作业--><div style"display: block" id""><div class"tit…

C++编程法则365条一天一条(359)认识各种初始化术语

文章目录Default initialization默认初始化Copy initialization拷贝初始化Aggregate initialization聚合初始化Direct initialization直接初始化list_initialization列表初始化value_initialization值初始化参考&#xff1a; https://en.cppreference.com/w/cpp/language/copy_…

【unity learn】【Ruby 2D】角色发射飞弹

前面制作了敌人的随机运动以及动画控制&#xff0c;接下来就是Ruby和Robot之间的对决了&#xff01; 世界观背景下&#xff0c;小镇上的机器人出了故障&#xff0c;致使全镇陷入了危机&#xff0c;而Ruby肩负着拯救小镇的职责&#xff0c;于是她踏上了修复机器人的旅途。 之前…

同步I/O实现Reactor和Proactor的差异

有两种高效的事件处理模式&#xff1a;Reactor模式和Proactor模式 Reactor模式 主线程只负责监听socket上是否有事件发生&#xff0c;当有事件发生时&#xff0c;主线程就将该事件放进请求队列&#xff0c;通知工作线程进程处理&#xff1b;主线程不做实质性的工作&#xff0c…

使用颜色检测有向图中的循环

给定一个有向图,检查该图是否包含循环。如果给定的图形至少包含一个循环,您的函数应返回 true,否则返回 false。 例子: 输入: n = 4, e = 6 0 -> 1, 0 -> 2, 1 -> 2, 2 -> 0, 2 -> 3, 3 -> 3 输出:是 解释: <

计网之HTTP协议和Fiddler的使用

文章目录一. HTTP概述和fidder的使用1. 什么是HTTP2. 抓包工具fidder的使用2.1 注意事项2.2 fidder的使用二. HTTP协议格式1. HTTP请求格式1.1 基本格式1.2 认识URL1.3 方法2. 请求报头关键字段3. HTTP响应格式3.1 基本格式3.2 状态码一. HTTP概述和fidder的使用 1. 什么是HTT…

VueRouter路由模式解析

VueRouter路由模式解析 前端路由的实现方式主要有两种&#xff1a;hash模式和history模式。 hash模式 在window.location对象中有一个hash字段&#xff0c;可以获取地址栏中#字符及后边的所有字符。 hash也称作锚点&#xff0c;本身是用来做页面定位的&#xff0c;可以使对…

BGP联邦实验

实验目的&#xff1a; 实验拓扑&#xff1a; IP地址规划&#xff1a; AS2内部&#xff1a; 172.16.0.0/16 172.16.0.0/24---P2P网络 172.16.1.0/24----MA网络 172.16.1.0/29 172.16.1.8/29 172.16.1.16/29 172.16.1.24/29 172.16.1.32/29 172.16.1.40/29 172.16.2.0/24--…

Golang每日一练(leetDay0032) 二叉树专题(1)

目录 94. 二叉树的中序遍历 Binary Tree Inorder Traversal &#x1f31f; 95. 不同的二叉搜索树 II Unique Binary Search Trees II &#x1f31f;&#x1f31f; 96. 不同的二叉搜索树 Unique Binary Search Trees &#x1f31f;&#x1f31f; &#x1f31f; 每日一练刷…

基于 FPGA+DSP 的冲击波超压测试系统设计与实现-系统测试(二)

5 系统功能测试及仿真 在完成系统硬件电路板的设计和软件程序的开发后&#xff0c;本章分别对 A/D 采集模块、 DDR3 SDRAM 存储模块的读写波形进行了测试&#xff0c;并对千兆网卡传输模块通过 Wireshark 软件进行抓包测速&#xff0c;调试成功并确认无误后将各模块组装起来对系…

Unity之ASE实现根据ScreenPosition改变渲染效果

前言 我们知道ScreenPosition节点,代表了屏幕空间的坐标,那么它有哪些用处呢?今天我们就来给大家演示一个效果,如下图所示:我们拉远拉进摄像机的位置,任务的渲染会根据不同距离有一定变化。 ScreenPosition介绍 Screen Position 节点输出当前像素的屏幕位置。根据所选…

7nm+跨域计算+极致性价比,这家芯片厂商助攻车企「降本增效」

汽车芯片赛道的「卷」&#xff0c;或许超出了所有人的预期。对于单纯TOPS算力的比拼&#xff0c;已经翻篇&#xff0c;如何让车企有的用&#xff0c;用得上&#xff0c;还要用得好&#xff0c;已经是新风向。 实际上&#xff0c;在汽车智能化刚刚开始的2018年&#xff0c;彼时类…

2.4 随机变量函数的分布

学习目标&#xff1a; 学习随机变量函数的分布&#xff0c;我会采取以下步骤&#xff1a; 熟悉随机变量的基本概念和分布&#xff1a;在学习随机变量函数的分布之前&#xff0c;需要先掌握随机变量的基本概念和分布&#xff0c;包括离散型随机变量和连续性随机变量的概率密度…

《Java8实战》第4章 引入流

集合是 Java 中使用最多的 API。 4.1 流是什么 流是 Java API 的新成员&#xff0c;它允许你以声明性方式处理数据集合&#xff08;通过查询语句来表达&#xff0c;而不是临时编写一个实现&#xff09;。可以看作是遍历数据集的高级迭代器&#xff0c;而且还可以并行的处理。…

语音识别实战(python代码)(一)

语音识别实战 &#xff08;python &#xff1a;pyttsx、SAPI、SpeechLib实例代码&#xff09;(一&#xff09; 本文目录&#xff1a; 一、语音识别的基本原理 &#xff08;1&#xff09;、语音识别的起源与发展 &#xff08;2&#xff09;、语音识别的基本原理 &#xff0…

吸烟行为检测系统(Python+YOLOv5深度学习模型+清新界面)

摘要&#xff1a;吸烟行为检测软件用于日常场景下吸烟行为监测&#xff0c;快速准确识别和定位吸烟位置、记录并显示检测结果&#xff0c;辅助公共场所吸烟安全报警等。本文详细介绍吸烟行为检测系统&#xff0c;在介绍算法原理的同时&#xff0c;给出Python的实现代码、训练数…

BGA封装与PCB差分互连结构的设计与优化

摘要&#xff1a;随着电子系统通信速率的不断提升&#xff0c;BGA封装与PCB互连区域的信号完整性问题越来越突出。 针对高速BGA封装与PCB差分互连结构进行设计与优化&#xff0c;着重分析封装与PCB互连区域差分布线方式&#xff0c;信号布局方式&#xff0c;信号孔/地孔比&…

Unity编写Shader内置各种矩阵和方法介绍

返回目录 大家好&#xff0c;我是阿赵。 这里记录一下Unity编写Shader内置各种矩阵和方法 一、Unity内置转换矩阵 1、MVP类矩阵 UNITY_MATRIX_MVP:Current model * view * projection matrix. UNITY_MATRIX_MV:Current model * view matrix. UNITY_MATRIX_V:Current view m…

静态库与动态库

库是已经写好的、成熟的、可复用的代码。在我们的开发的应用中经常有一些公共代码是需要反复使用的&#xff0c;就把这些代码编译为库文件。库可以简单看成一组目标文件的集合&#xff0c;将这些目标文件经过压缩打包之后形成的一个可执行代码的二进制文件。库有两种&#xff1…