C++循环经典练习题

2023-11-16

目录

前言

一、方阵

二、乘法口诀表

        1.正向打印

        2.反向打印

三、打印三角形

        1.正三角

        2.倒三角

四、杨辉三角

五、水仙花数

六、斐波那契数列 

七、进制转换

        1.十进制转二进制

        2.二进制转十进制

总结


前言

在C++的海洋中,循环是一座宝藏岛,等待着勇敢的探索者去征服。正如一位著名程序员曾经说过:“没有循环,编程就像是一个没有尽头的迷宫,所以循环题目便是我们走向编程巅峰的重要阶梯。”想要成为C++的大师,你需要经历循环的洗礼,解决经典的练习题。本篇博客将向你展示一系列C++循环的经典练习题,帮助你在循环的世界中获得进一步的成长和掌握。让我们一同踏上这充满挑战与乐趣的征程吧!


一、方阵

代码如下(示例):

//行数和每行*的个数,由用户输入
#include <iostream>
#include <windows.h>

using namespace std;
int main(void) {
	int row;  
	int col;  

	cout << "请输入行数:" << endl;
	cin >> row;
	cout << "请输入列数:" << endl;
	cin >> col;

	for (int i = 0; i < row;i++) {
		for (int j = 0; j < col;j++) {
			cout << "*" ;
		}
		cout << endl;
	}

	system("pause");
	return 0;
}

二、乘法口诀表

1.正向打印

代码如下(示例):

#include <iostream>
#include <windows.h>

using namespace std;
int main(void) {
	int s;
	for (int i = 1; i <= 9; i++) {  //i->外层循环次数,表示第几行
		for (int j = 1; j <= i; j++) {
			s = j * i;
			cout << j << "*" << i << "=" << s<<"\t";
		}
		cout << endl;
	}
	system("pause");
	return 0;
}

 2.反向打印

代码如下(示例):

#include <iostream>
#include <windows.h>
#include <iomanip>

using namespace std;
int main(void) {

	for (int i = 9; i >= 1; i--) {        //从9到1逆序循环,控制乘法表的行数。
		for (int j = i; j >= 1; j--) {   //从i到1逆序循环,控制每行乘法表的输出。
			cout << j << "×" << i << "=" << i * j << " " << "\t";
		}
		cout << endl;

		for (int k = 9; k - i >= 0; k--) {  //为了对齐每一行,输出相应数量的空格。
			cout << "\t";
		}
	}
	cout << endl;

	system("pause");
	return 0;
}

82bd6c5aa1e34524afb18d5860ba74cb.png


三、打印三角形

1.正三角

代码如下(示例):

#include <iostream>
#include <windows.h>

using namespace std;
int main(void) {
	int row;
	int col;

	cout << "请输入行数:";
	cin >> row;
	cout << "请输入列数:";
	cin >> col;

    // 按指定行数和列数打印星号
	for (int i = 1; i <= row; i++){                // 外层循环,控制行数。
		for (int j = 0; j <= col - i; j++) {      // 内层循环,控制每行打印的星号数量。
			cout << "*";
		}
		cout << endl;
	}

	system("pause");
	return 0;
}

2.倒三角

代码如下(示例):

#include <iostream>
#include <windows.h>

using namespace std;
int main(void) {
	int row;
	cout << "请输入行数:" << endl;
	cin >> row;

	for (int i = 0; i < row; i++) {
		for (int j = 0; j < row - i; j++) {
			cout << "*";
		}
		cout << endl;
	}

	system("pause");
	return 0;
}

四、杨辉三角

代码如下(示例):

#include <iostream>
#include <windows.h>

using namespace std;
int main(void) {
	int n;
	cout << "请输入金字塔的层数:";
	cin >> n;

	for (int i = 1; i <= n; i++) {
		for (int j = 1; j <= n - i ; j++) {
			cout << " ";   // 打印空格,用于对齐金字塔的左侧
		}
		for (int j = 1; j <= 2 * i - 1 ; j++) {
			cout << "*";   // 打印星号,构成金字塔的中间部分
		}
		cout << endl;
	}

	system("pause");
	return 0;
}

五、水仙花数

水仙花数就是自恋的数字,它们就像是三位数中的明星,自恋地展示自己的立方和等于自己。

代码如下(示例):

/*输出所有水仙花数
水仙花数是指一个三位数,它的每位数字的立方和等于它本身。
说明:严格的说,只有3位的整数,才可能是水仙花数,即100-999
例如,153是一个水仙花数,1的立方+5的立方+3的立方=153。
*/

#include <iostream>
#include <windows.h>

using namespace std;
int main(void) {
	int a, b, c;     //例:123 =>a:3
	// 个  十 百

	for (int i = 100; i <= 999; i++) {  
		a = i % 10;
		b = i / 10 % 10;
		c = i / 100 ;

		if (a * a * a + b * b * b + c * c * c == i) {   //判断是否为水仙花数,是就输出
			cout << i << endl;
		}
	}

	system("pause");
	return 0;
}

六、斐波那契数列 

斐波那契数列:一个以0和1开始,后面的每个数都是前两个数之和的数列。

                         换句话说,每个数都是它前面两个数的和。
具体来说,斐波那契数列的前几个数是:0, 1, 1, 2, 3, 5, 8, 13, 21, 34, ...

代码如下(示例):

/*输出指定项的斐波那契数列  (观察规律)
* 分析:
*            v 
* 序号:1,2, 3, 4, 5, 6, 7, 8   .... n
        1, 1, 2, 3, 5, 8, 13, 21  .... x
		a, b
		   a, b
          a=b; b=value

  为了防止溢出,把value、a、b都定义成long long 类型
*/

#include <iostream>
#include <windows.h>

using namespace std;
int main(void) {
	int n = 0;              // 斐波那契数列的个数
	long long a=1, b=1;    // 前两个斐波那契数
	long long value;     

	cout << "请输入斐波那契数列的个数:";
	cin >> n;

	if (n <= 0) {
		cout << "要求是大于0的正数." << endl;
		system("pause");
		return 1;        //非正常结束返回值取非零值
	}
	if (n == 1) {
		cout << "1"  << endl;
		system("pause");
		return 0;
	}
	if (n == 2) {
		cout << "1 1" << endl;
		system("pause");
		return 0;
	}
	
	cout << "1 1 ";
	for (int i = 3; i <= n; i++) {
		value = a + b;               // 计算当前斐波那契数
		a = b;                      // 更新前一个斐波那契数
		b = value;                 // 更新当前斐波那契数  
		cout << value << " ";
	}
	cout << endl;

	system("pause");
	return 0;
}

七、进制转换

1.十进制转二进制

通常采用倒除法来进行转换

//将十进制数转换为二进制数 (倒除法)

#include <iostream>
#include <windows.h>

using namespace std;
int main(void) {
	int i;           // 存放二进制数的数组下标
	int ret[32];    // 存放二进制数的数组,最多32位

	int n;
	cout << "请输入一个正整数:";
	cin >> n;

	if (n < 0) {
		cout << "您输入的不是正整数!";
		system("pause");
		return 1;
	}

	i = 0;
	while(n != 0) {
		ret[i] = n % 2;      // 将余数存入数组
		n = n / 2;          // 将商作为新的被除数
		i++;
	}

	//输出结果
	for (i--; i >= 0; i--) {
		cout << ret[i];        // 逆序输出数组元素,即二进制数的各位
	}
	cout << endl;

	system("pause");
	return 0;
}

2.二进制转十进制


总结

这篇文章介绍了C++循环的经典练习题,包括打印方阵、打印(正、倒)三角形、杨辉三角、水仙花数、乘法口诀表(正向及反向打印)、斐波那契数列和十进制转二进制。

这些练习题有助于提升编程技能和理解循环概念,适合不同层次的程序员挑战和提高。

敬请期待更多有趣练习题的更新!

 

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

C++循环经典练习题 的相关文章

  • 以编程方式获取命名管道的系统名称

    我正在使用 WCF NetNamedPipeBinding 编写进程间通信 我的目标是让服务在 net pipe localhost service 上运行 所以我运行最简单的主机 host new ServiceHost contract
  • 返回带有列表对象的列表对象

    我有三个表 汽车品牌 汽车型号 和 CarsandModel 我有 Carsand 模型表 因为一个模型可以由多个制造商构建 我想返回包含汽车型号列表的汽车品牌列表 我现在的长篇大论不是过滤汽车型号的汽车制造商列表 我尝试添加一个 wher
  • 表达式:_BLOCK_TYPE_IS_VALID(pHead->nBlockUse) 错误

    此错误发生在运行时 我不确定是什么原因导致的 代码对我来说看起来是正确的 include
  • 如何使用 Unity 动态注册通用类?

    我有一个包含很多类 300 和 BaseClass 的程序集 我想用接口注册一个泛型类 统一后 您必须在 Name如果你想解析接口的对象数组 我想要一个对象数组主视图模型自动地 有没有办法通过反射来自动执行此操作 有什么建议么 示例 伪 p
  • 如何在提升日期时间中忽略周末和节假日?

    第一个问题 我有一个提升日期对象 如下所示 boost gregorian date 今天 2012 02 13 我从今天减去日期部分 如下所示 今天 月 240 或今天 天 X 等 我想在进行上述减法时是否有办法排除周末和特殊假期 我的意
  • 如何在C#中使用默认浏览器打开带有锚点(#)的html文件

    我正在尝试在 C 中打开上下文帮助文件 当我没有指定锚点时 它工作得很好 Process Start C Help Help htm 但是当我指定锚点时 它不会打开 Process Start C Help Help htm Toc3420
  • 确定所选电子邮件是来自收件箱还是已发送邮件

    我正在编程Outlook 插件并需要确定所选电子邮件是否来自Inbox or Sent Items这样当我将电子邮件保存到数据库中时 我可以使用文件夹 收件箱 或 已发送 来标记电子邮件 我知道我可以将文件夹名称与 收件箱 或 已发送邮件
  • 传输数据的 Symbol.WPAN.Bluetooth 示例

    我正在尝试将 EMDK 附带的 Symbol WPAN Bluetooth 用于 Symbol 设备 有人碰巧有一个传输数据的工作示例吗 Symbol 的示例只是将设备配对 他们显然认为在个人局域网示例中并不真正需要传输数据 不管怎样 我知
  • 如何将日期格式从 DD/MM/YYYY 或 MM/DD/YYYY 更改为 YYYY-MM-DD?

    我需要使用 C 更改日期字符串的格式 来自 06 16 2010 或 16 06 2010 至 2010 06 16 你能帮我实现这个目标吗 thanks 如果您已经将其作为DateTime use string x dt ToString
  • 黑屏只是闪烁一会儿

    在我的 Windows Phone 8 应用程序中 我有一个搜索页面 其中有一个文本框供用户输入搜索关键字 输入默认SIP键盘的 Enter 键时将调用搜索 搜索结果显示在另一个页面中 为了在导航到结果页面之前隐藏键盘 我使用 this F
  • 无法在 Visual Studio Code 的 C# 输出上键入任何内容

    所以我试图在 vscode 上运行一个非常基本的 C 程序 代码如下 using System namespace HelloWorld class Program static void Main string args string N
  • MonoMac 窗口关闭时没有错误

    我刚刚开始在 Xamarin Studio 中使用 MonoMac 并且遇到了最奇怪的问题 我有一个带有 NSButton 和 NSTextField 的窗口 至此 我已经删除了按钮上的事件处理程序 因此它不会执行任何操作 除了在单击它时突
  • 使用循环在 C 中管道传输两个或多个 shell 命令

    我正在尝试执行ls wc l通过 C 语言程序 而不是使用命令行 这是我当前的工作代码 int main int pfds 2 pipe pfds pid t pid fork if pid 0 The child process clos
  • Windows 中的蓝牙 AVRCP 命令会触发哪些事件

    可以这么说 只是在做一些高级侦察 对于我的潘多拉客户 Elpis http elpis adamhaile net 我支持全局媒体键 键盘上的 MediaPlayPause MediaNext 等 并且我希望能够支持AVRCP http e
  • 如何获取 (Linux) 机器的 IP 地址?

    这个问题和之前问的几乎一样如何获取本地计算机的IP地址 https stackoverflow com questions 122208 get the ip address of local computer 问题 但是我需要找到一个的I
  • 防止使用不完整类型实例化模板类

    我正在写一个库 它的布局看起来类似于 A h include
  • 如何将curlpp 添加到我的项目中?

    我正在尝试从 vb net 过渡到 C 但我陷入了困境 我从下载了curpp这给了我一个 dll exp 和 lib 文件 我将包含这 3 个文件的目录添加到项目属性中的 附加库目录 链接器 gt 常规 接下来 我将 ws2 32 lib
  • 复杂对象上的 GroupBy(例如 List

    Using GroupBy and Count gt 1我试图在列表中查找我的类的重复实例 该类看起来像这样 public class SampleObject public string Id public IEnumerable
  • 同时使用多个控制台

    是否有捷径可寻 我现在仅使用控制台测试我的网络应用程序 最好的办法是从一个项目中拥有多个控制台 然后按一下 立即调试 菜单项 我可以像过去一样使用多个项目 但这似乎很笨拙 理想情况下 我可以启动多个控制台实例 从同一线程运行很好 并且让它们
  • C++ 中带逗号的表达式的执行顺序 [重复]

    这个问题在这里已经有答案了 我的理解是这个词j i将在之前执行 i在声明中 j i i C 标准是否保证j i将在之前执行 i在循环 for auto i std next begin j begin i end j i i 逗号运算符引入

随机推荐

  • Django安装提示错误

    使用sudo pip install 的时候出现下面一段代码 The directory Users XX Library Caches pip or its parent directory is not owned by the cur
  • 【KBQA】医疗知识图谱的问答系统实现

    知识图谱的构建 1 1数据的收集 初探医疗知识图谱 这篇文章概述了医疗知识图谱的定义 特点和应用 以及构建医疗知识图谱的数据源和步骤 文章指出 目前医疗知识图谱构建的数据源可以分为三个部分 权威的医学文献 临床数据和互联网信息 医学知识图谱
  • 郑州大学远程教育计算机考题,2017年郑州大学远程教育计算机考题.doc

    一 单项选择题 30道小题 共60分 1 下面关于计算机病毒说法正确的是 2分 A 都具有破坏性 B 有些病毒无破坏性 C 都破坏EXE文件 D 不破坏数据 只破坏文件 2 Excel中的电子工作表具有 2分 A 一维结构 B 二维结构 C
  • SAP FICO 会计凭证打印开发说明书(包括测试样例、程序代码仅作参考,不保证一定可以运行)

    开发说明书 输入屏幕 输出布局及样式 程序逻辑 输入表屏幕逻辑 查询表BKPF 根据条件 BKPF BUKRS 输入条件的公司代码 BKPF BUDAT 输入的过账日期 取值 SAP会计凭证号码 BKPF BELNR 公司代码 BKPF B
  • c语言初级指针详解,一级指针,二级指针。n级指针

    目录 一 1级指针 1 1 内存的使用 1 2 c语言内存中数据的访问 1 3 一级指针的定义方式 1 4 通过指针访问数据 二 二级指针 2 1二级指针的创建和访问 总结 一 1级指针 首先在对指针进行理解之前 我们要清楚下面这几个个概念
  • 【C++】栈和队列(stack&queue)

    栈和队列 一 stack的介绍和使用 1 概念 2 常见接口 3 使用 1 最小栈问题 2 栈的压入 弹出序列 3 逆波兰表达式 4 stack 的模拟实现 二 queue的介绍和使用 1 概念 2 常见接口 3 使用 用队列使用栈 4 q
  • float布局--圣杯布局

    前言 虽然现在有了flex弹性盒子模型 很多布局效果都可以通过flex盒子来实现 但由于flex盒子模型的兼容性不容乐观 ie至少要10才能支持flex 所以还是很有必要学习float流式布局的 栗子 正常的块级元素的布局是这样的 文字代表
  • 嵌入式开发中logout两种实现方式与原理

    1 如果没有logout头文件 利用 include
  • 设置文字渐变颜色在IOS系统上不显示问题

    设置的文字渐变颜色在IOS上不显示 如下代码设置渐变色 background linear gradient 180deg D37E98 27 68 FFBDD1 86 61 webkit background clip text webk
  • 并网逆变器PI控制(并网模式)

    并网逆变器PI控制 1 逆变器拓扑结构与数学模型 2 常用变换 2 1 abc alpha beta 变换及其逆变换 2 2
  • coreldraw软件完整最新版2022矢量图形设计软件

    CorelDRAW2022是一款矢量图平面设计软件 发展历史也很长 是平面设计师必学软件 和 illustrator 比起来操作性相对差一点 但在排版上比 AI 好用 还有一个很明显的优点就是在设计大型文件的时候不会很卡 矢量图形设计软件C
  • 设计模式C++学习笔记之二(Proxy代理模式)

    http www cnblogs com wanggary archive 2011 04 08 2009965 html 代理 一看名字就知道这只是个中介而已 真实的执行者在代理的后面呢 cbf4life在他的书里提的例子也很有趣 更详细
  • 基于Three.js的WebXR渲染入门

    1 Three js 渲染管线快速概览 我不会花太多时间讨论 Three JS 渲染管道的工作原理 因为它在互联网上有详细记录 例如 此链接 我将在下图中列出基础知识 以便更容易理解各个部分的去向 2 WebXR 设备 API 入门 在我们
  • AI绘画网站都有哪些比较好用?

    人工智能绘画网站是一种利用人工智能技术进行图像处理和创作的网站 这些绘画网站通常可以帮助艺术家以人工智能绘画的形式快速生成有趣 美丽和独特的绘画作品 无论你是专业的艺术家还是对人工智能绘画感兴趣的普通人 人工智能绘画网站都可以为你提供新的创
  • 【图像去噪】【TGV 正则器的快速计算方法】通过FFT的总(广义)变化进行图像去噪(Matlab代码实现)

    欢迎来到本博客 博主优势 博客内容尽量做到思维缜密 逻辑清晰 为了方便读者 座右铭 行百里者 半于九十 本文目录如下 目录 1 概述 2 运行结果 3 参考文献 4 Matlab代码实现 1 概述 图像去噪 TGV 正则化器的快速计算方法
  • tomcat部署war包出错解决方案

    tomcat部署war包出错解决方案 最最简单直接明了的方法 卸载重新再装一遍 笔者重装了5 6遍 算是整好了 写篇博客 希望你萌 少走弯路 这是我走的弯路 https 下载 安装 配置及部署war包出错解决方案 1 jdk的安装及配置 2
  • git、gitee创建第一个项目、导入项目到线上仓库

    1 新建一个空文件夹 2 在文件夹中运行git bash 3 克隆线上的空仓库到文件夹中 git clone 线上仓库的地址 eg git clone aaa git 4 将项目中的代码复制到文件夹中 5 提交项目代码 运行命令 1 git
  • Shell脚本相关命令

    文章目录 1 编写简单的hello world脚本 查看脚本内容 并运行 2 练习加减乘除 比较等基本的算术运算 3 使用test命令对两个数值比较 等于 小于 大于等于 注释说明含义 4 使用test命令对两个字符串比较 等于 非空 小于
  • 大数据学习线路图

    大数据学习线路图 Java教程 Java 教程 Java 简介 Java 开发环境配置 Java 基础语法 Java 对象和类 Java 基本数据类型 Java变量类型 Java修饰符 Java运算符 Java循环结构 Java分支结构 J
  • C++循环经典练习题

    目录 前言 一 方阵 二 乘法口诀表 1 正向打印 2 反向打印 三 打印三角形 1 正三角 2 倒三角 四 杨辉三角 五 水仙花数 六 斐波那契数列 七 进制转换 1 十进制转二进制 2 二进制转十进制 总结 前言 在C 的海洋中 循环是