C语言编程打印菱形的数字图表
答案:4 信息版本:手机版
解决时间 2019-10-06 19:12
已解决
2019-10-06 03:55
题目描述
从键盘输入一个整数n(1≤n≤9),打印出指定的数字图形。
输入
正整数n(1≤n≤9)。
输出
指定数字图形。
样例输入
5
样例输出
1
121
12321
1234321
123454321
1234321
12321
121
1
提示
最佳答案
2019-10-06 05:23
#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楼
2019-10-06 07:23
#include
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
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
else if(j<=n-1)
{
printf("%-2d",s);
s--;
}
else
{
printf("%-2d",s);
s++;
}
}
printf("\n");
}
return 0;
}
2楼
2019-10-06 07:14
turn(' ',k);应该打多了空格吧!
而且超过10的时候就不行了!
所以改了一下:
#include
int num;
void turn(char ch,int n)
{
if(n>0)
{
if(ch==' ')
{
printf("%2c",ch);
turn(ch,n-1);
}
else
{
if(num<10)
printf("%2c",ch);
else
printf("%2d",(int)(ch-'0'));
turn((char)(ch-1),n-1);
}
}
}
void turn1(char ch,int k,int n)
{
if(k
{
if(num<10)
printf("%2c",ch);
else
printf("%2d",(int)(ch-'0'));
turn1((char)(ch+1),k+1,n);
}
}
int main()
{
int i,k;
scanf("%d",&num);
for(i=1;i<=2*num-1;i++)
{
k=(i<=num)?num-i:i-num;
turn(' ',k);
turn((char)(num+'0'),num-k);
turn1((char)(k+2+'0'),k+1,num);
printf("\n");
}
}
3楼
2019-10-06 06:31
程序:
运行结果:
我要举报
如果感觉以上信息为低俗/不良/侵权的信息,可以点下面链接进行举报,我们会做出相应处理,感谢你的支持!
大家都在看
推荐资讯