广告
返回顶部
首页 > 资讯 > 后端开发 > 其他教程 >C语言之格式化屏幕输出详解
  • 892
分享到

C语言之格式化屏幕输出详解

2024-04-02 19:04:59 892人浏览 独家记忆
摘要

目录题目1:请打印输出以下图案。题目2:分别按如下三种形式,编程输出九九乘法表。总结 在一些问题中,问题经常规定了屏幕输出的格式,让我们以固定的格式编程输出某些图案或表格。我们分别以

在一些问题中,问题经常规定了屏幕输出的格式,让我们以固定的格式编程输出某些图案或表格。我们分别以下面三个例子来说明格式化屏幕输出的方法。

题目1:请打印输出以下图案。

我们当然可以用最笨的方法,直接按照题目样式暴力输出:


printf("   *\n");
printf("  ***\n");
printf(" *****\n");
printf("*******\n");
printf(" *****\n");
printf("  ***\n");
printf("   *\n");

那多没意思啊😅,玩不起吗?

如果题目要求输出菱形的大小可以改变,那不就寄了吗?

仔细思考,这种格式化输出的图案都是非常整齐的,我们当然需要用到循环语句。

首先,两层for循环是跑不掉的,最外层的for循环用来控制输出行数,内层的for循环用来控制空格以及'*'。刚开始的时候,我们最好先自己动手画一下,分析一下图案的组成。

我们发现,前四行中,'*'的个数是以奇数往下递增的,而后四行'*'的个数是逐行往下递减的,那么我们只要先处理好前4行的图案,后3行稍加修改即可得到。

首先我们看看空格与'*'以及行数之间的数量关系:

行数 空格 *
1 3 1
2 2 3
3 1 5
4 0 7
…… …… ……
n N-n(N为递增总行数) 2*n-1

很显然,现在问题就变成了一个小学生的找规律问题,因此我们可以编写以下代码:


for (int n=1; n<=4; n++)//n为行数,4为总行数N
{
    for (int i=1; i<=4-n; i++)//输出'*'前的空格
    {
        printf(" ");
    }
    for (int i=1; i<=2*n-1; i++)//输出'*'
    {
        printf("*");
    }
    printf("\n");//输出完一行后要换行
}

运行结果为:

说明我们的想法是对的!那么剩下的3行(N-1行)只需要对以上代码稍加修改就行了。修改过后,我们可以得到:


for (int n=1; n<=4; n++)//n为行数,4为递增总行数N
{
    for (int i=1; i<=4-n; i++)//输出'*'前的空格
    {
        printf(" ");
    }
    for (int i=1; i<=2*n-1; i++)//输出'*'
    {
        printf("*");
    }
    printf("\n");//输出完一行后要换行
}
for (int n=1; n<=3; n++)//n为行数,3为递减总行数N-1
{
    for (int i=1; i<=n; i++)//输出'*'前的空格
    {
        printf(" ");
    }
    for (int i=1; i<=7-2*n; i++)//输出'*',7为递增行中最后一行(第N行)的'*'的数量2*N-1
    {
        printf("*");
    }
    printf("\n");//输出完一行后要换行
}

运行结果为:

好耶!现在我们已经得到了我们想要的结果。那么随着菱形的大小改变时,我们只要相应地改变N的大小,即可输出对应的图案。

题目2:分别按如下三种形式,编程输出九九乘法表。

同样,暴力方法是肯定可以做出来的😅,这里就不再赘述。

首先第一步,我们要用暴力方法把九九乘法表的表头输出出来:


printf("1  2  3  4  5  6  7  8  9\n");
printf("-  -  -  -  -  -  -  -  -\n");

这三个表应该是第一种格式比较简单,因为他没有过多的较难处理的空格。

事实上,我们只要用两层循环,让九九乘法表的行和列的表头遍历1~9,并把他们相乘即可得到表中的每一个值(这里行的表头隐藏了)。(我所说的行和列的表头的意思是下表中的这些数字):

123456789123456789

因此我们有:


for (int i=1; i<=9; i++)//行的表头递增
{
    for (int j=1; j<=9; j++)//列的表头递增
    {
        printf("%3D", i * j);
    }
    printf("\n");//每输出完一行后要换行
}

这样我们就能得到第一个表:

我们来看第二个表:第二个表为左下三角形,右上三角形无输出(或输出为空格)。

寻找一下规律,不难发现,当列的表头小于等于行的表头(j<=i)时,才会输出数字。

因此我们可以在第一种情况下稍作修改:


for (int i=1; i<=9; i++)//行的表头递增
{
    for (int j=1; j<=9; j++)//列的表头递增
    {
        if (j<=i)
        {
            printf("%3d", i * j);
        }
    }
    printf("\n");//每输出完一行后要换行
}

即可得到第二个表:

类似地,第三个表是当列的表头大于等于行的表头(j>=i)时才输出数字,当列的表头小于行的表头(j<i)时输出空格。值得注意的是,因为我们用的是%3d,所以每次应输出3个空格。在第一种情况下稍作修改,得到如下代码:


for (int i=1; i<=9; i++)//行的表头递增
{
    for (int j=1; j<=9; j++)//列的表头递增
    {
        if (j>=i)
        {
            printf("%3d", i * j);
        }
        else
        {
            printf("   ");
        }
    }
    printf("\n");//每输出完一行后要换行
}

即可得到第三个表:

总结

本篇文章就到这里了,希望能够给你带来帮助,也希望您能够多多关注编程网的更多内容!

--结束END--

本文标题: C语言之格式化屏幕输出详解

本文链接: https://www.lsjlt.com/news/157181.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

下载Word文档
猜你喜欢
  • C语言之格式化屏幕输出详解
    目录题目1:请打印输出以下图案。题目2:分别按如下三种形式,编程输出九九乘法表。总结 在一些问题中,问题经常规定了屏幕输出的格式,让我们以固定的格式编程输出某些图案或表格。我们分别以...
    99+
    2022-11-12
  • 详解C语言printf()输出格式
    目录C语言printf()输出格式类型长度精度输出最少宽度标志C语言printf()输出格式 主要说明格式字符串的基本思想。 格式字符串纲要 [标志]    [输出最少宽度]    ...
    99+
    2023-03-19
    C语言printf()输出 C语言格式输出
  • C语言 OutputDebugString与格式化输出函数OutputDebugPrintf案例详解
    OutputDebugString属于windows API的,所以只要是包含了window.h这个头文件后就可以使用了。可以把调试信息输出到编译器的输出窗口,还可以用Db...
    99+
    2022-11-12
  • C语言详解格式控制符scanf与printf的输入输出
    目录一、使用scanf输入和printf输出1、scanf的使用2、printf的使用二、常用输出格式1、%md2、%0md3、%.mf三、使用getchar输入putchar输出单...
    99+
    2022-11-13
  • c语言输出格式有哪些
    c语言输出格式有printf函数、%d、%f、%c和%s、修饰符、转义字符和字段宽度和精度。1、printf函数,可以输出各种类型的数据,包括字符、整数、浮点数和字符串;2、%d、%f、%c和%s,分别表示输出整数、浮点数、字符和字符串;3...
    99+
    2023-08-09
  • C++ stringstream格式化输出输入详情
    目录最近在笔试时经常遇见各种输入问题,于是细心总结一波;首先string str; cin>>str;遇到空格结束;于是乎产生了getline(),可与得到一行字符串;空...
    99+
    2022-11-12
  • C语言如何格式化输出控制长度
    这篇文章主要介绍了C语言如何格式化输出控制长度的相关知识,内容详细易懂,操作简单快捷,具有一定借鉴价值,相信大家阅读完这篇C语言如何格式化输出控制长度文章都会有所收获,下面我们一起来看看吧。c语言格式化输出控制长度实现ls命令的时候,输出的...
    99+
    2023-06-16
  • C语言怎么以%d格式化输出整数
    这篇文章主要讲解了“C语言怎么以%d格式化输出整数”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“C语言怎么以%d格式化输出整数”吧!%d 格式化输出整数#include <stdio....
    99+
    2023-06-16
  • c语言怎么将文件内容输出到屏幕
    在C语言中,可以使用标准库函数来将文件内容输出到屏幕。以下是一个简单的示例:```c#include int main() {FIL...
    99+
    2023-08-18
    c语言
  • Python格式化输出之format用法详解
    目录format用法一、填充1.无参(1)2.无参(2)3.无参(3)4.key value5.列表6.字典7.类8.魔法参数二、数字格式化三、叹号用法总结format用法 &nbs...
    99+
    2022-11-13
  • C语言中 printf 函数输出格式
    printf()函数是格式化输出函数, 一般用于向标准输出设备(例如屏幕)按规定格式输出信息。 一、Printf输出格式 1、输出十进制整数 int main() { /...
    99+
    2022-11-12
  • C语言printf()输出格式是什么
    本篇内容介绍了“C语言printf()输出格式是什么”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!C语言printf()输出格式主要说明格式...
    99+
    2023-07-05
  • c语言如何输出时间格式
    C语言中,可以使用ctime函数将时间以字符串格式输出。ctime函数的原型如下:```cchar *ctime(const tim...
    99+
    2023-08-31
    c语言
  • R语言格式化输出sprintf实例讲解
    用%s替代字符串 name <- 'max' sprintf('my name is %s',name) [1] "my name is max" 用%d替代整数 a...
    99+
    2022-11-11
  • C语言格式化输出函数printf怎么使用
    这篇文章主要介绍“C语言格式化输出函数printf怎么使用”,在日常操作中,相信很多人在C语言格式化输出函数printf怎么使用问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”C语言格式化输出函数printf怎...
    99+
    2023-07-05
  • 怎么用c语言在屏幕上输出一段文字
    要在屏幕上输出一段文字,可以使用C语言的标准库函数printf来实现。下面是一个简单的示例: #include int main...
    99+
    2023-10-23
    c语言
  • JAVA语言的输入输出流详解(c)
    详解b中的例子,详解[@more@]  1. BufferedReader是Reader的一个子类,它具有缓冲的作用,避免了频繁的从物理设备中读取信息。它有以下两个构造函数:BufferedReader(Reader in) Buffere...
    99+
    2023-06-03
  • Go语言fmt.Sprintf格式化输出的语法与实例
    格式化在逻辑中非常常用。使用格式化函数,要注意写法: fmt.Sprintf(格式化样式, 参数列表…) 格式化样式:字符串形式,格式化动词以%开头。参数列表:多个参数...
    99+
    2022-11-11
  • 详解C语言之缓冲区溢出
    目录一、缓冲区溢出原理二、缓冲区溢出实例三、缓冲区溢出防范3.1、gets3.2、strcpy3.3、 strncpy/strncat3.4、sprintf3.5、scanf3.6、...
    99+
    2022-11-12
  • c语言浮点数输出的格式怎么控制
    在C语言中,可以使用printf函数来控制浮点数输出的格式。下面是一些常见的格式控制符:1. %f:输出浮点数,小数点后默认保留6位...
    99+
    2023-05-14
    c语言浮点数 c语言
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作