C语言——简单图形打印学习

C语言——简单图形打印学习,第1张

A.输出直角三角形

首先,先看一道简单的例题

题目描述

本题要求编写程序,输出指定的三角图案。

输入

输入一个整数

输出

1.按照下列格式输出由“*”组成的三角图案。

(1)初学者的代码,可以简单的运用输出、输入完成。

#include
int main()
{
	printf("****\n***\n**\n*");
	return 0;
 }

(2)但是,显然,一旦打印的行列多了,这个方法就不适用了,而循环语句可以很好的解决这个问题。

分析图形结构:输入n,第一行n个*,一次随着列的增加减少一个。

#include 
int main()
{ 
int n;
int i,j;
    scanf("%d",&n) ;     //输入n行
    for(i=1;i
2.变形一下,当打印的不是数字,变成了字母

即我们要引入一个字符型

#include 
int main()
{ 
int n;
int i,j;
char ch;
    scanf("%d",&n) ;
    for(i=1;i<=n;i++) 
    {
        for(j=1;j<=n-i+1;j++)
        {
		   printf("%c",'A');
		} 
        printf("\n");
    }
    
    return 0;
} 

 3.再变形一下,变成字母变成了按顺序打印,注意,字母之间有空格

A B C D 
E F G 
H I 

#include
int main()
{
	int n;
	char op = 'A';
	scanf("%d",&n);
	int i, j;
	for(i=1;i<=n;i++)
	{
		for(j=1;j<=n-i+1;j++)
		{
			putchar(op++);       //输出递加字母。 
			printf(" ");          
		}
		printf("\n");                
	}
	return 0;
}
B.输出“金字塔”型的数字图形 (1)实心三角形的打印

    1
   222
  33333
 444444
555555555

分析,实验A一样,我们要使用循环语句,但是我们不难发现有以下规律

i行数字前面“ ”的个数‘数字的个数每一行打印的数字是
1411
2332
3253
............
i5-i2i-1i

有代码如下

#include 
int main()
{
	int i,j,k,n;
	scanf("%d",&n);
	for(i=1;i<=n;i++)
	{
		for(k=1;k<=n-i;k++)  //输出空格个数的情况
		{
			printf(" ");
		}
		for(j=1;j<=2*i-1;j++)  //输出数字个数的情况
		{
			printf("%d",i);    //输出数字的情况
		}
		printf("\n");         //回车
	}
	return 0;
}

上面代码需要特别注意的是,这个代码包含了一个循环的嵌套,一共调用了三个for语句,但是后面两个语句是并列的的关系。

(2)空心三角形的打印

输出:

    1
   2 2
  3   3
 4     4
555555555

分析:和(1)一样大致框架不变,但是实心变空心,我们则需要多考虑,再空心的输出怎么完成。

i行

数字前面“ ”的个数数字的个数数字中间的“ ”个数打印的数字
14101
23212
32233
41254
50905
in-i特殊特殊i

通过表格,我们看的出第五行是特殊的

可以看出每行的第n-i个和第2n-1个一定是数字,1~4行中其余的为空格,第5行其余的也为数字

在(1)的框架中,我们可以嵌套if条件语句去满足这些要求

#include
int main()
{
	int i,j,k,n;
	scanf("%d",&n);
	for(i=1;i<=n;i++)
	{
		for(k=1;k<=n-i;k++)
		{
			printf(" ");
		}
		for(j=1;j<=2*i-1;j++)
		{
			if(j==1||j==2*i-1||i==n)  //使1~4行的第一个和最后一个,第5行全部,输出数字
			printf("%c",'0'+i);      //printf("%d",i)也是成立的
			else
			printf(" ");             //除输出数字外的其他输出空格
		}
		printf("\n");
	}
	return 0;
}
总结

在简单图形输出时,循环语句的嵌套是基础的,其次我们要学会分析各行的特征与行数的数字关系,想办法用代码替代出来。这是有解题思路的必备!!!!

输出为字母或者数字型的时候可以用字符型引出,方便变量。

简单图形打印非常容易发现自己的失误,因为错了以后可以根据输出的样式倒推哪条语句有错,缺少了什么,例如换行是否换对了,是可以通过输出的代码进行分析的。

以上,如有错误,请指正;如有疑问,欢迎一起讨论。

作者的碎碎念

第一次写博客,着手第一篇一直在想主题,最后确定这个,希望大家可以通过这些变形,掌握循环语句的使用和基础图形的打印!!大家晚安,感谢阅读。

欢迎分享,转载请注明来源:内存溢出

原文地址: https://outofmemory.cn/langs/727514.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-04-26
下一篇 2022-04-26

发表评论

登录后才能评论

评论列表(0条)