C语言空心字符菱形
菱型起始字母和菱形的高度。
输出:
参看测试用例,打印空心的由字符组成的菱形。
输入
C 4
输出
C
D D
E E
F F
E E
D D
C 展开
#include<stdio.h>
main()
{
int n=0,i=0,j=0;char c='\0';
scanf("%c%d",&c,&n);
for(i=1;i<n+1;i++)
{
for(j=0;j<n-i;j++) printf(" ");
printf("%c",c+i-1);
for(j=1;i-1>0>0&&j<=2*i-3;j++) printf(" ");
if(i-1>0) printf("%c",c+i-1);
printf("\n");
}
for(i=n-1;i>0;i--)
{
for(j=0;j<n-i;j++) printf(" ");
printf("%c",c+i-1);
for(j=1;i-1>0>0&&j<=2*i-3;j++) printf(" ");
if(i-1>0) printf("%c",c+i-1);
printf("\n");
}
}
我是用的小写,给你看看结果:
正确的!!
发现 爱脱臼之后 的答案好像不行啊。。。。
二楼的答案是对的,和我相比多了一个库,也用了指针,感觉要麻烦一点点。。。(不要骂我啊)
注释我发给你了,楼主注意看消息啊。。。。
#include<stdio.h>
main()
{
int n=0,i=0,j=0;char c='\0';
scanf("%c%d",&c,&n);
for(i=1;i<n+1;i++)
{
for(j=0;j<n-i;j++) printf(" ");
printf("%c",c+i-1);
for(j=1;i-1>0>0&&j<=2*i-3;j++) printf(" ");
if(i-1>0) printf("%c",c+i-1);
printf("\n");
}
for(i=n-1;i>0;i--)
{
for(j=0;j<n-i;j++) printf(" ");
printf("%c",c+i-1);
for(j=1;i-1>0>0&&j<=2*i-3;j++) printf(" ");
if(i-1>0) printf("%c",c+i-1);
printf("\n");
}
}
我是用的小写,给你看看结果:
正确的!!
发现 爱脱臼之后 的答案好像不行啊。。。。
二楼的答案是对的,和我相比多了一个库,也用了指针,感觉要麻烦一点点。。。(不要骂我啊)
注释我发给你了,楼主注意看消息啊。。。。
main()
{
int i,n,j,k;
char zi;
scanf("%d\n",&n);
zi=getchar();
for(i=1;i<=n;i++)
{
for(k=1;k<=n-i;k++) printf(" ");printf("%c",(zi+i-1));
if(i!=1)
{
for(k=1;k<=2*(i-1)-1;k++) printf(" ");printf("%c",(zi+i-1));
}
printf("\n");
}
for(i=n-1;i>=1;i--)
{
for(k=1;k<=n-i;k++) printf(" ");printf("%c",zi+i-1);
if(i!=1)
{
for(k=1;k<=2*(i-1)-1;k++) printf(" ");printf("%c",(zi+i-1));
}
printf("\n");
}
}
已通过验证
#include "stdlib.h"
int main (void)
{
char start;
int high,i,j;
printf ("请输入起始字母和菱形高度:\n");
scanf ("%c%d",&start,&high);
/*上半部分*/
for (i=0;i<high;i++)
{
for (j=1;j<high-i;j++)
printf (" ");
printf ("%c",start+i);
for (j=0;j<2*i-1;j++)
printf (" ");
if (i)
printf ("%c",start+i);
printf ("\n");
}
/*下半部分*/
for (i--;i>0;i--)
/*i==high-1*/
{
for (j=0;j<high-i;j++)
printf (" ");
printf ("%c",start+i-1);
for (j=0;j<2*i-3;j++)
printf (" ");
if (i-1)
printf ("%c",start+i-1);
printf ("\n");
}
system ("pause");
return 0;
}