通过使用双重for循环语句,打印下列图形:
代码:#include <stdio.h>
int main()
{
int i,j;
for(i=1; i<=4; i++)
{
for(j=1; j<=4-i; j++)
printf(" ");
for(j=1; j<=2*i-1; j++)
printf("*");
printf("\n");
}
for(i=1; i<=3; i++)
{
for(j=1; j<=i; j++)
printf(" ");
for(j=1; j<=7-2*i; j++)
printf("*");
printf("\n");
}
return 0;
}
这大概是最简单的一类打印图形,上周做过一次了,在做一次基本忘得差不多了,所以说熟能生巧。平常要多练习。做的时候还没有感觉,刚刚写总结忽然想到。这个图形相当于分成了四部分。前面空格一部分,后面打印图形一部分,上面一部分,下面一部分。对于后面几种打印12321.。。。类似的这种忽然找到了方法。
Problem Description
从键盘输入一个整数n(1≤n≤9),打印出指定的数字图形。
Input
正整数n(1≤n≤9)。
Output
指定数字图形。
Example Input
5
Example Output
1 121 12321 1234321 123454321 1234321 12321 121 1
代码:#include <stdio.h> int main() { int n,i,j; scanf("%d",&n); for(i=1;i<=n;i++) { for(j=1;j<=n-i;j++) printf(" "); for(j=1;j<=i;j++) printf("%d",j); for(j=i-1;j>0;j--) printf("%d",j); printf("\n"); } for(i=n-1;i>0;i--) { for(j=1;j<=n-i;j++) printf(" "); for(j=1;j<=i;j++) printf("%d", j); for(j=i-1;j>0;j--) printf("%d",j); printf("\n"); } return 0; }
Problem Description
输入n值,打印下列形状的金字塔,其中n代表金字塔的层数。
Input
输入只有一个正整数n。Output
打印金字塔图形,其中每个数字之间有一个空格
代码:#include <stdio.h> int main() { int n,i,j; scanf("%d",&n); for(i=1;i<=n;i++) { for(j=1;j<=2*n-(2*i);j++) printf(" "); printf("1"); for(j=2;j<=i;j++) printf(" %d",j); for(j=i-1;j>0;j--) printf(" %d",j); printf("\n"); } return 0; }
注意:先标记第一次数字,然后后面的数字输出时数字前面带一个空格。不要想当然的每个数字输出时都带一个空格,这样的话就会输出错误。(⊙﹏⊙)bProblem Description
图形的规则如下 ,要求输入n的值,按照图形的打印规则打印出相关的图形:
Input
输入整数n。
Output
按图形的规律打印出相关的图形。
Example Input
4Example Output
代码:#include <stdio.h>+ +*+ +***+ +*****+ +***+ +*+ +
int main()
{
int n,a, i, j;
scanf("%d",&n);
a=n-1;
while(a--)
printf(" ");
printf("+\n");
for(i=1;i<=(n-1);i++)
{
for(j=1;j<=n-i-1;j++)
printf(" ");
printf("+");
for(j=1;j<=2*i-1;j++)
printf("*");
printf("+\n");
}
for(i=1;i<=n-2;i++)
{
for(j=1;j<=i;j++)
printf(" ");
printf("+");
for(j=1;j<=2*(n-i-1)-1;j++)
printf("*");
printf("+\n");
}
for(a=n-1;a>0;a--)
printf(" ");
printf("+\n");
return 0;
}
注意:此题和上一题差不多,先输出第一个变量,再看后面的,然后第一行也要单独输出。遇到的问题:最后一行输出+时,想要重复运用a变量,然后成了无限循环。问巨巨们告诉我,地行输出时,n已经等于0,不能重复运用。然后fou循环里的j之所以能够重复利用,是因为一开始又重新定义了j的值。最后。希望自己每做一道题有一道题的收获。