打印各种星号

/*
打印九九乘法表
*/
#include<stdio.h>
void main()
{
	int i,j;
	for(i=1;i<=9;i++)
	{
		for(j=1;j<=i;j++)
			printf("%d*%d=%-4d",j,i,i*j);
		printf("\n");
	}
}

/*
打印图形
*******
 *****
  ***
   *
方法1:
设:行数为n
    行号为i,依次取值:1,2,3......n
则:第一行打印空格0个,*为2n-1个
    第二行打印空格1个,*为2n-3个
	第三行打印空格2个,*为2n-5个
	.......
第n行打印空格打印空格n-1个,*为2n-(2n-1)个即1个
   分析行号i与空格和*号的关系得出: 
   第i行打印空格i-1个,打印*号2n-(2i-1)个

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

/*
打印星号图形
*******
 *****
  ***
   *
设:行数为n
    行号为i,依次取值:1,2,3,4,5,,,n

则:第一行第1~2n-1列打印*号,其他打印空格
    第二行第2~2n-2列打印*号,其他打印空格
	第三行第1~2n-3列打印*号,其他打印空格
	......
	第n行第n~2n-n列打印*号,其他打印空格
     分析行号i与*号和空格的关系得出: 
     第i行第i~2n-i列打印*号,其他打印空格

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

/*
打印星号图形
* * * * *
 *     *
  *   *
   * *
    *
1,左边的空格数相同,即i-1个
2,*号加*号减的空格总数,与实心的*好数相同,即2(n-i)+1
3,不同的是:设每行的*号和*号间的空格的编号为j,依次取值1,2,,,,,2(n-i)+1
则第1行,当j%2==1时打印*号,其他打空格
     其余行,当j==1和j==2(n-i)+1时打印*号,其他打
     空格

*/
#include<stdio.h>
void main()
{
	int i,j,n;
	printf("input n=");
	scanf("%d",&n);
	for(i=1;i<=n;i++)
	{
		for(j=1;j<=i-1;j++)
			putchar(' ');
		for(j=1;j<=2*(n-i)+1;j++)
			if(i==1 &&j%2 ||j==1||j==2*(n-i)+1)
				putchar('*');
			else putchar(' ');
			printf("\n");
	}
}

/*
输出星号图形
    *
   ***
  *****
 *******
  *****
   ***
    *
*/
#include<stdio.h>
void main()
{
	int i,j,n;
	printf("input n:");
	scanf("%d",&n);
	for(i=1;i<=n;i++)   /*控制输出前n行*/
	{
		for(j=1;j<=10;j++)
			putchar(' ');
		for(j=1;j<=n-i;j++)
		{
			putchar(' ');putchar(' ');       /*每行的起始空格越来越少*/
		}
		for(j=1;j<i*2;j++)
		{
			putchar('*');putchar(' ');       /*每行的'*'越来越多*/
		}
		putchar('\n');
	}

	for(i=1;i<=n-1;i++)   /*控制输出后n行*/
	{
		for(j=1;j<=10;j++)
			putchar(' ');
		for(j=1;j<=i;j++)
		{
			putchar(' ');putchar(' ');       /*每行的起始空格越来越多*/
		}
		for(j=1;j<(n-i)*2;j++)
		{
			putchar('*');putchar(' ');       /*每行的'*'越来越少*/
		}
		putchar('\n');
	}

}

/*
    *
   ***
  *****
 *******
*********
*/
#include<stdio.h>
void main()
{
	int i,j;
	for(i=0;i<5;i++)
	{
		for(j=0;j<=4-i;j++)
			printf(" ");
		for(j=0;j<=2*i-1;j++)
			printf("*");
		printf("\n");
	}
}



  • 2
    点赞
  • 10
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值