C语言打印九九乘法表的多种方式多种形式(完整,左上,左下,右上,右下)

  • 📢博客主页:肩匣与橘
  • 📢欢迎点赞 👍 收藏 ⭐留言 📝 如有错误敬请指正!
  • 📢本文由肩匣与橘编写,首发于CSDN🙉
  • 📢生活依旧是美好而又温柔的,你也是✨ 

9️⃣9️⃣乘法表

🗨️前言

1️⃣完整型

2️⃣左上三角型

3️⃣左下三角型

3.1 for-for

3.2 while-while

3.3 while-for

3.4 for-while

3.5 定义变量

3.6 递归

4️⃣右上三角型

5️⃣右下三角型


🗨️前言

        九九乘法表是我们从小学就开始学习的基础数学知识,不仅是学习数学时必须要掌握的基础知识之一,也是日常生活中常见的计算方法。而在学习编程的过程中,能够打印九九乘法表同样是必须要掌握的基础知识之一。本文将结合C语言的基础知识,通过多种方式实现打印九九乘法表的多种形式,望大家加深对循环语句的理解的同时,进一步可以提高自己的编程能力。

1️⃣完整型

       完整代码:

#include<stdio.h>
int main()
{int i,j;for(i=1;i<=9;i++){for(j=1;j<=9;j++){printf("%d*%d=%2d\t",i,j,i*j);}printf("\n");}return 0;
}

       这段代码中,我们使用了两层循环语句来实现完整的99乘法表。外层循环控制乘数i的取值范围,从1到9,内层循环控制乘数j的取值范围,从1到9。在每次内层循环中,我们使用printf函数输出乘法表的一项,其中%d表示整数占位符,%d*%d=%2d表示输出的格式。

       %2d表示输出一个整数,占用两个字符的位置,如果该整数不足两个字符,则在前面加上空格进行补齐,\t表示输出一个制表符,用于在控制台中进行对齐。在输出一项乘法表后,我们使用printf函数的转义字符"\n"来输出一个换行符,从而将下一行乘法表的第一个数放在新的一行。

       运行结果:

2️⃣左上三角型

       完整代码:

#include<stdio.h>
int main() {int i,j;for(i=1; i<=9; i++) {for(j=1; j<=9; j++) {if(j>=i)printf("%d*%d=%2d  ",i,j,i*j);}printf("\n");}return 0;
}

       这段代码中,我们使用了两层循环语句来实现完整的99乘法表。外层循环控制乘数i的取值范围,从1到9,内层循环控制乘数j的取值范围,从1到9。在每次内层循环中,进行i和j的比较,j大于等于i时,我们使用printf函数输出乘法表的一项,其中%d表示整数占位符,%d*%d=%2d表示输出的格式。

       %2d表示输出一个整数,占用两个字符的位置,如果该整数不足两个字符,则在前面加上空格进行补齐,在输出一项乘法表后,我们使用printf函数的转义字符"\n"来输出一个换行符,从而将下一行乘法表的第一个数放在新的一行。

       运行结果:

3️⃣左下三角型

3.1 for-for

       完整代码:

#include <stdio.h>
int main() {int i, j;for (i = 1; i <= 9; i++) {for (j = 1; j <= i; j++) {printf("%dx%d=%d\t", j, i, i * j);}printf("\n");}return 0;
}

       这段代码中,我们使用了两个for循环,外层循环控制被乘数i的取值范围,从1到9;内层循环控制乘数j的取值范围,从1到i。在每次内层循环中,使用printf函数输出当前的乘法表项,其中%d 表示输出整数,\t表示输出制表符,使每个乘法表项都占用固定的宽度;使用 \n输出换行符,从而将下一行乘法表的第一个数放在新的一行。

       运行结果:

3.2 while-while

       完整代码:

#include <stdio.h>
int main() {int i = 1;while (i <= 9) {int j = 1;while (j <= i) {printf("%d*%d=%d\t", i, j, i * j);j += 1;}printf("\n");i += 1;}return 0;
}

       这段代码中,我们使用了两个 while 循环,外层循环控制被乘数 i 的取值范围,从 1 到 9;内层循环控制乘数 j 的取值范围,从 1 到 i。在每次内层循环中,使用 printf 函数输出当前的乘法表项,其中 %d 表示输出整数,\t 表示输出制表符,使每个乘法表项都占用固定的宽度;使用 \n 输出换行符,从而将下一行乘法表的第一个数放在新的一行。

       运行结果:

3.3 while-for

       完整代码:

#include <stdio.h>
int main() {int i = 1;while (i <= 9) {int j;for (j = 1; j <= i; j++) { // for循环中的range()函数等价于range(1, i+1)printf("%d*%d=%d ", i, j, i * j);}printf("\n");i += 1;}return 0;
}

       这段代码中,我们使用了一个 while 循环和一个 for 循环,外层循环控制被乘数 i 的取值范围,从 1 到 9;内层循环控制乘数 j 的取值范围,从 1 到 i。在每次内层循环中,使用 printf 函数输出当前的乘法表项,其中 %d 表示输出整数,空格表示乘法表项之间的分隔符,使用 \n 输出换行符,从而将下一行乘法表的第一个数放在新的一行。

       运行结果:

3.4 for-while

       完整代码:

#include <stdio.h>
int main() {int i, j;for (i = 1; i <= 9; i++) {j = 0;while (j < i) {j += 1;printf("%d*%d=%d ", i, j, i * j);}printf("\n");}return 0;
}

       这段代码中,我们使用了一个 for 循环和一个 while 循环,外层循环控制被乘数 i 的取值范围,从 1 到 9;内层循环控制乘数 j 的取值范围,从 1 到 i。在每次内层循环中,使用 printf 函数输出当前的乘法表项,其中 %d 表示输出整数,空格表示乘法表项之间的分隔符,使用 \n 输出换行符,从而将下一行乘法表的第一个数放在新的一行。

       运行结果:

3.5 定义变量

       完整代码:

#include <stdio.h>
int main() {int a[] = {1, 2, 3, 4, 5, 6, 7, 8, 9};int i, j;for (i = 0; i < 9; i++) {j = 1;while (j <= a[i]) {printf("%d*%d=%-3d", a[i], j, a[i] * j);j += 1;}printf("\n");}return 0;
}

       这段代码中,我们使用了一个 for 循环和一个 while 循环,外层循环控制被乘数 i 的取值范围,从 1 到 9;内层循环控制乘数 j 的取值范围,从 1 到 i。在每次内层循环中,使用 printf 函数输出当前的乘法表项,其中 %d 表示输出整数,%-3d 表示输出整数并占据 3 个字符的宽度,且从左边对齐,\t 表示乘法表项之间的分隔符,使用 \n 输出换行符,从而将下一行乘法表的第一个数放在新的一行。

       运行结果:

3.6 递归

       完整代码:

#include <stdio.h>
void multiplication(int n);
int main() {multiplication(1);return 0;
}
void multiplication(int n) {int m;if (n < 10) {for (m = 1; m <= n; m++) {printf("%d*%d=%-3d", m, n, m * n);}printf("\n");multiplication(n + 1);}
}

       这段代码中,我们使用了一个递归函数 multiplication,函数中使用了一个 for 循环来输出每一行乘法表中的所有项,并将函数自身递归调用来输出下一行乘法表。在输出乘法表项时,使用 printf 函数输出当前的乘法表项,其中 %d 表示输出整数,%-3d 表示输出整数并占据 3 个字符的宽度,且从左边对齐,\t 表示乘法表项之间的分隔符,使用 \n 输出换行符,从而将下一行乘法表的第一个数放在新的一行。

       运行结果:

4️⃣右上三角型

       完整代码:

#include<stdio.h>
int main() {int i,j;for(i=1; i<=9; i++) {for(j=1; j<=9; j++) {if(j<i)printf("\t");elseprintf("%d*%d=%2d  ",i,j,i*j); }printf("\n");}return 0;
}

       这段代码中,我们使用了两个 for 循环来控制输出的行数和列数,并使用了 if 语句来控制输出的格式和内容。在输出乘法表项时,使用 printf 函数输出当前的乘法表项,其中 %d 表示输出整数,%2d 表示输出整数并占据 2 个字符的宽度,且从右边对齐,\t 表示乘法表项之间的分隔符,使用 \n 输出换行符,从而将下一行乘法表的第一个数放在新的一行。

       运行结果:

5️⃣右下三角型

       完整代码:

#include<stdio.h>
int main() {int i,j;for(i=1; i<=9; i++) {for(j=1; j<=9-i; j++) {printf("\t");}for(j=1; j<=i; j++)printf("%d*%d=%2d  ",i,j,i*j);printf("\n");}return 0;
}

       这段代码中,我们使用了两个 for 循环来控制输出的行数和列数,并使用了 printf 函数来输出每一项乘法表项。在输出乘法表项时,使用 printf 函数输出当前的乘法表项,其中 %d 表示输出整数,%2d 表示输出整数并占据 2 个字符的宽度,且从右边对齐,\t 表示乘法表项之间的分隔符,使用 \n 输出换行符,从而将下一行乘法表的第一个数放在新的一行。

       运行结果:


       总之,九九乘法表主要是使用不同的循环结构、条件语句和输出格式进行实现,多加练习可以更加熟悉C 语言的基本语法和控制结构,还可以加深了对循环和条件语句的理解。

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

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

CodeWhisperer——一个十分强大的工具

使用心得&#xff1a; Amazon CodeWhisperer 是亚⻢逊出品的一款基于机器学习的 AI 编程助手&#xff0c;可实时提供代码建议。现在已正式可用&#xff0c;面向个人提供免费服务&#xff0c;通过在各种流行的 IDE 里集成 CodeWhisperer&#xff08;包括我们常用的 JetBrains 产…

AIGC 创业公司还没盈利,微软、Adobe 已赚得盆满钵满

一出奥特曼在 OpenAI「来去之间」的戏码&#xff0c;以回归暂告一段落。 过程很抓马&#xff0c;吃瓜群众很激动&#xff0c;当然了&#xff0c;最开心的还得是微软。 不仅因为这出「闹剧」无论怎么发展&#xff0c;都是微软稳赢&#xff0c;还因为背后潜藏着一个更大的瓜—— …

UniPro集成华为云WeLink 为企业客户构建互为联接的协作平台

华为云WeLink是华为开启数字化办公体验、帮助企业实现数字化转型的实践&#xff0c;类似钉钉。UniPro的客户企业中&#xff0c;有使用WeLink作为协作工具的&#xff0c;基于客户的实际业务需求&#xff0c;UniPro实现了与WeLink集成的能力&#xff0c;以帮助客户企业丰富和扩展…

尝试访问启动磁盘设置时出错怎么办?保姆级教程!

用户案例&#xff1a;尝试访问启动磁盘设置时出错 “由于专业所需软件仅支持Windows系统&#xff0c;我决定在我的MAC电脑上安装Windows 10双系统。然而&#xff0c;安装完成后遇到了问题。Boot Camp打开时报错&#xff1a;“尝试访问启动磁盘设置时出错”&#xff0c;同时…

线上问题整理-ConcurrentModificationException异常

项目场景&#xff1a; 商品改价&#xff1a;商品改价中通过多线程批量处理经过 Lists.partition拆分的集合对象 问题描述 商品改价中通过多线程批量处理经过 Lists.partition拆分的集合对象&#xff0c;发现偶尔会报 java.util.ConcurrentModificationException: nullat jav…

Maven生命周期

Maven生命周期 通过IDEA工具的辅助&#xff0c;能很轻易看见Maven的九种生命周期命令&#xff0c;如下&#xff1a; 双击其中任何一个&#xff0c;都会执行相应的Maven构建动作&#xff0c;为啥IDEA能实现这个功能呢&#xff1f;道理很简单&#xff0c;因为IDEA封装了Maven提供…

IDEA中Tomcat启动web项目

1.首先【Run】-->【Edit Configurations】&#xff0c;进入对应功能界面 2.点击左上角【】&#xff0c;选择Tomcat Server -->Local 3.Name输入自己中意的&#xff0c;下面两个port&#xff0c;保证没被占用就行 4.切到【Deployment】页签&#xff0c;点击【】&#xff…

力扣373场周赛题解

第一题&#xff1a; 这个题是一个简单题&#xff0c;数据范围也特别小&#xff0c;所以直接使用模拟方式暴力解答。 直接进行行移动的过程&#xff0c;然后检查移动后的结果是否与移动前相同。 代码&#xff1a; ​ public class Solution {// 将指定行循环右移k次pri…

Python代码实现购买打折衣服,并且flask框架在web浏览器上输入购买件数,自动计算出价格

2.某商店T恤的价格为35元/件&#xff08;2件9折&#xff0c;3件以上8折&#xff09;,裤子的价格为120 元/条&#xff08;2条以上9折&#xff09;. 小明在该店买了3件T恤和2条裤子,请计算并显示小明应该付多少钱? #yifu.py from flask import Flask,render_template,request##…

VM安装Centos

文章目录 第2章 VM与Linux的安装2.1 VMWare安装2.2 CentOS安装 第3章 Linux文件与目录结构3.1 Linux文件3.2 Linux目录结构 第4章 VI/VIM编辑器4.1 是什么4.2 测试数据准备4.3 一般模式4.4 编辑模式4.5 命令模式4.6 模式间转换 第5章 网络配置和系统管理操作5.1 查看网络IP和网…

Java核心知识点整理大全18-笔记

Java核心知识点整理大全-笔记_希斯奎的博客-CSDN博客 Java核心知识点整理大全2-笔记_希斯奎的博客-CSDN博客 Java核心知识点整理大全3-笔记_希斯奎的博客-CSDN博客 Java核心知识点整理大全4-笔记-CSDN博客 Java核心知识点整理大全5-笔记-CSDN博客 Java核心知识点整理大全6…

时间序列预测 — LSTM实现单变量滚动风电预测(Keras)

目录 1 数据处理 1.1 数据集简介 1.2 数据集处理 2 模型训练与预测 2.1 模型训练 2.2 模型滚动预测 2.3 结果可视化 1 数据处理 1.1 数据集简介 实验数据集采用数据集5&#xff1a;风电机组运行数据集&#xff08;下载链接&#xff09;&#xff0c;包括风速、风向、温…