用C语言输出菱形
难点在于控制每行空格以及“ * ”号的个数。
#define _CRT_SECURE_NO_WARNINGS
#include <stdio.h>
#include <stdlib.h>
void print(int i){
int j = 1;
int k = 1;
for (j = 1; j <= (i + 1) / 2; ++j){
for (k = 1; k <= (i + 1) / 2 - j; ++k){
printf(" ");
}
for (k = 1; k <= 2 * j - 1; ++k){
printf("*");
}
printf("\n");
}
for (j = 1; j <= i / 2; ++j){
for (k = 1; k <= j; ++k){
printf(" ");
}
for (k = 1; k <= i - 2*j; ++k){
printf("*");
}
printf("\n");
}
}
int main(){
int i = 0;
while (1){
printf("请输入行数:");
scanf("%d", &i);
if (i % 2 != 0 && i > 1) {
print(i);
}
else {
printf("输入不合法!");
}
}
system("pause");
return 0;
}
输出结果