练习2-3 输出倒三角图案 (5 分)
本题要求编写程序,输出指定的由“”组成的倒三角图案。
输入格式:
本题目没有输入。
输出格式:
按照下列格式输出由“”组成的倒三角图案。
* * * *
* * *
* *
*
方法一:直接暴力输出
(可以说是"Hello World!'的升级版,见到了格式化输出)
#include<stdio.h>
int main()
{
printf("* * * *\n * * *\n * *\n *\n");
return 0;
}
方法二:找到规律利用循环进行输出
(本题不需要,但是这种能力在后边很常用到)
代码A:(引用网上其他人的)
#include <stdio.h>
int main() {
// n 为行数 i,j为循环控制变量
// i控制 每行开始的空格数
// j 控制每行相邻两项的空格数
int n,i,j;
for ( n=4; n>0 ; n-- ) { // 总共有 4 行 (因 n==4)
for( i=4 ; i>n ; i--) printf(" ");// 控制每一行开始时的空格数
for( j=2*n-1 ; j>0 ; j-- ) {
// 控制相邻两项的空格数
if ( j%2==1 ) {
printf("*");
} else {
printf(" ");
}
}
printf("\n"); //每行结束时的换行
}
return 0;
}
代码B:(亦是利用循环,但利用的是每行不同符号所占的个数规律进行循环。)
# include<stdio.h>
int main()
{
int n,i,j;
//scanf("%d",&n);
n=4;
for(i=0;i<n;i++)
{
for(j=0;j<n;j++)
{
if(j==0)
{
if(i==0)
printf("*");
else;
}
else if(j<i)
printf(" ");
else
printf(" *");
}
printf("\n");
}
return 0;
}
(对于打印图案题目的个人见解)
一般用两层循环,图案高度设置为第一层循环,
一般图案最后形状取决于第二层循环,但是初学时不建议直接就把条件一个个试,这样游戏难度很高的,(所以我采用的是先两个循环一样,打印矩形,然后再看j和i的关系(j>i,j>i-1,j<i等等这种),才开始时我会把这个和一次函数联系起来,所以用些i+j,i-j这种一直调试,其实并不划算的)