空心菱形* (10 分)请编写程序,输出空心菱形。
请编写程序,输出空心菱形。
输入格式
行数(正整数)
输出格式
若行数为奇数,则显示由星号勾勒出的空心菱形,否则显示错误信息。
输入样例1
5
输出样例1
*
* *
* *
* *
*
输入样例2
8
输出样例2
Error
不考虑其他的函数,纯纯的来分析一波
#include<stdio.h>
int main() {
int l,h1;
scanf("%d", &l);
if (l % 2 == 0) {
printf("Error");
return 0;
}//排除偶数的情况
int h = 1;
int ch = 1;
int mid;
mid = (l + 1) / 2;
h1 = (l - 1) / 2;
int k = 1;
int k1 = 1;
for (;h<=mid;h++) {//此为行循环
ch = h;
for (;1<=mid-ch;ch++) {
printf(" ");
}//
printf("*");//稳定输出第一个*
k = 1;
if (h != 1) {//首行不输出第二个*
for (; k <= k1; k++) {
printf(" ");
}
k1 += 2;
printf("*");//第二行后,空格规律为1,3,5...
}printf("n");
}//上,中部分菱形完成
k1 -= 4;//k1进行削减,更改规律为...5,3,1。
h = mid - 1;//行数比上中和少一
for (; 1 <= h; h--) {
ch = h;
for (; 1 <= mid - ch; ch++) {
printf(" ");
}
printf("*");
k = 1;
if (h != 1) {
for (; k <= k1; k++) {
printf(" ");
}
k1 -= 2;
printf("*");
}printf("n");
}
return 0;
}
用h1和k1前后反转的变化来实现逆序
多观察,多研究内部规律
本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
THE END
二维码