在屏幕上输出奇数行*图案(类似于乘法口诀表)

在这里插入图片描述
如果我们想在屏幕上输出如上的图案?该怎么做呢?看到这样的图形,一定会联想到我们之前打印过的99乘法表,只不过是将式子换成了*号.
首先我们来考虑,先不看后六行,前七行可以看作是打印与奇数行相对应的*号.
所以我们可以定义一个整型变量i,用来表示行数,用j来表示
的数量.由于我们要打印奇数行对应的*号数量,所以我们在利用for循环时,变量i变化一定是i= i + 2.前7行的打印我们很容易做到,后六行该怎么做打印出的数量才能与前六行对称呢?
可以利用两个if循环嵌套在for循环中,也就是第七行为一个边界条件,第七行之前包括第七行都是打印对应行数的*,因此在后六行我们可以将i的值赋给j,当j的值小于总行数时,我们就打印
,变量j的变化为++j(即依次加1).此时后六行的*数量就会与前六行呈对称状.
我们要注意的时以上提到的行数都是在考虑有偶数行的情况,由于变量i的变化为i=i+2,也就是说,偶数行在程序运行中不会打印出来.程序如下所示.

#include <stdio.h>
#include <stdlib.h>
int main(){
	int i;
	int j;
	for (i = 1;i <= 25;i+=2){
		if (i <= 13){							//前七行打印对应奇数行的*
			for (j = 1;j <= i;++j){
				printf("*");
			}
			printf("\n");
		}
		if (i > 13){
			for (j = i;j<=25;++j){			//后六行与前六行*数目对称
				printf("*");
			}
			printf("\n");
		}
	}
	system("pause");
	return 0;	
}

猜你喜欢

转载自blog.csdn.net/weixin_44781107/article/details/88851343