题目:
利用方程式打印空心菱形,输入n控制层数。
注:n为菱形上半部分的层数。
例如:
输入:5
输出:
*
* *
* *
* *
* *
* *
* *
* *
*
解题思路:
解决这个问题,主要是在纸上画出一个菱形,建立直角坐标系,解出菱形的四条边与输入的数的方程,再进行输出就比较简单了。
程序代码:
#include <stdio.h>
int main(int argc, char *argv[])
{
int x, y, n;
printf("输入一个正整数来生成对应的空心菱形:");
scanf("%d",&n);
n = n - 1;
for(x = 0; x <= 2 * n ; x++){
for(y = 0; y <= 2 * n ; y++){
if(x + y == n || x + y == 3*n || y - x == -n || y - x == n)
//菱形四个边的方程
putchar('*');
else
putchar(' ');
//除了*外输出空格保持菱形的形状
}
putchar('\n');
}
return 0;
}
运行结果:
输入一个正整数来生成对应的空心菱形:5
*
* *
* *
* *
* *
* *
* *
* *
*
输入一个正整数来生成对应的空心菱形:10
*
* *
* *
* *
* *
* *
* *
* *
* *
* *
* *
* *
* *
* *
* *
* *
* *
* *
*