输出菱形

题目来源:https://nanti.jisuanke.com/t/17109

由键盘输出任意一个自然数 nn,输出如下图:形如“菱形”的由大写字母组成的图形,注意上一半开始字母相同,下一半结束字母相同。(注意:每一行输出字母后没有多余的空格)

n = 1n=1 的时候

1
A

n = 2n=2 的时候

1
 A
2
ABC
3
 C

n = 3n=3 的时候

1
  A
2
 ABC
3
ABCDE
4
 CDE
5
  E

输入格式

文件名:lingxing.in

输入一个整数 n(1\le n \le 13)n(1n13)

输出格式

文件名:lingxing.out

输出对应的图形。

样例输入

4

样例输出

   A
  ABC
 ABCDE
ABCDEFG
 CDEFG
  EFG
   G

无文件代码:

#include <stdio.h>
int main()
{
	int n;
	int i,j,k;
	scanf("%d",&n);
	
	for(i=1;i<=n;i++)
	{
		for(k=1;k<=n-i;k++)
			printf(" ");
		
		for(j=1;j<=2*i-1;j++)
			printf("%c",'A'+j-1);
		printf("\n");
	}

	for(i=n-1;i>0;i--)
	{
		for(k=n-i;k>0;k--)
			printf(" ");
		
		for(j=1;j<=2*i-1;j++)
			printf("%c",'A'+j-1+(n-i)*2);
		printf("\n");
	}
	return 0;
}
文件代码:
#include <stdio.h>
int main()
{
	int n,a,i,sum;
	FILE *in,*out;
	if((in=fopen("lingxing.in.txt","r"))==NULL)
	{printf("打开失败");return;}
	if((out=fopen("lingxing.out.txt","w"))==NULL)
	{printf("打开失败");return;}

	while (!feof(in))
	{
		/*
		fscanf(in,"%d",&n);
		for(i=0,sum=0;i<n;i++)
		{
			fscanf(in,"%d",&a);
			sum+=a;
		}
		fprintf(out,"%d\n",sum);
		*/
		int n;
	fscanf(in,"%d",&n);
	int i,j,k;
	for(i=1;i<=n;i++)
	{
		for(k=1;k<=n-i;k++)
		fprintf(out," ");
			//printf(" ");
		
		for(j=1;j<=2*i-1;j++)
		//	printf("%c",'A'+j-1);
		//printf("\n");
		fprintf(out,"%c",'A'+j-1);
		fprintf(out,"\n");
	}

	for(i=n-1;i>0;i--)
	{
		for(k=n-i;k>0;k--)
		//	printf(" ");
		fprintf(out," ");
		
		for(j=1;j<=2*i-1;j++)
		fprintf(out,"%c",'A'+j-1+(n-i)*2);
		fprintf(out,"\n");
		//	printf("%c",'A'+j-1+(n-i)*2);
	//	printf("\n");
	}
}
	
	fclose(in);
	fclose(out);
	return 0;
 } 

posted @ 2018-05-18 17:39  王雪亮  阅读(575)  评论(0编辑  收藏  举报