C语言编程打印菱形的数字图表
从键盘输入一个整数n(1≤n≤9),打印出指定的数字图形。
输入
正整数n(1≤n≤9)。
输出
指定数字图形。
样例输入
5
样例输出
1
121
12321
1234321
123454321
1234321
12321
121
1
提示 展开
#include "stdio.h"
int main() {
int n,i,j;
while(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);//输出从1到n
for(j=i-1; j>=1; j--)
printf("%d",j);//输出从n-1到1
printf("\n");
}
for(i=n-1; i>=1; i--) {
for(j=1; j<=n-i; j++) //画空格
printf(" ");
for(j=1; j<=i; j++)
printf("%d",j);//输出从1到n
for(j=i-1; j>=1; j--)
printf("%d",j);//输出从n-1到1
printf("\n");
}
}
return 0;
}
扩展资料:
书写规则
1、一个说明或一个语句占一行。
2、用{} 括起来的部分,通常表示了程序的某一层次结构。{}一般与该结构语句的第一个字母对齐,并单独占一行。
3、低一层次的语句或说明可比高一层次的语句或说明缩进若干格后书写。以便看起来更加清晰,增加程序的可读性。在编程时应力求遵循这些规则,以养成良好的编程风格。
参考资料:
#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);//输出从1到n
for(j=i-1;j>=1;j--)
printf("%d",j);//输出从n-1到1
printf("\n");
}
//下三角
for(i=n-1;i>=1;i--)
{
for(j=1;j<=n-i;j++)//画空格
printf(" ");
for(j=1;j<=i;j++)
printf("%d",j);//输出从1到n
for(j=i-1;j>=1;j--)
printf("%d",j);//输出从n-1到1
printf("\n");
}
}
结果:
我思考了很久也很难理解其中的循环 请讲讲详细的思路把 按照什么顺序输入什么内容
首先肯定是要一行一行的打印嘛,对吧
每行分三块 :空格 从1到n(表示第几行) 从n-1到1
而菱形又可以分成两个三角形,上三角和下三角
这样就出来了啊
空格数跟行数有关,
数字也与行数有关。
2013-11-29 · 知道合伙人软件行家
#include <stdio.h>
int main(void)
{
printf(" 1 \n");//照着弄printf;
}
#include<stdio.h>
int main()
{
int n,i=1,j=1,k=1,s,x1,x2,x3,x4;
scanf("%d",&n);
for(i=1;i<=n;i++)/*上半部分行的循环*/
{
s=n;
x1=n+1-i;
x2=n+i-1;
for(j=1;j<=x2;j++)/*列的循环*/
{
if(j<x1) printf(" ");
else if(j<=n-1)
{
printf("%-2d",s);
s--;
}
else
{
printf("%-2d",s);
s++;
}
}
printf("\n");
}
for(k=1;k<=n-1;k++)
{
s=n;
x3=k+1;
x4=2*n-1-k;
for(j=1;j<=x4;j++)
{
if(j<x3) printf(" ");
else if(j<=n-1)
{
printf("%-2d",s);
s--;
}
else
{
printf("%-2d",s);
s++;
}
}
printf("\n");
}
return 0;
}