问题:输入n,输出正倒n层星号三角形。首行顶格,星号间有一空格,效果见样例
输入样例:
3
输出样例;
* * *
* *
*
* *
* * *
参考代码:
#include<stdio.h>
int main(){
int n;
while(scanf("%d",&n) != EOF){
int k = 2*n - 1;//一行最多的元素数
int maxrow; //一行包含多少个元素
int jg1;//判断标志,是输出空格还是*
for(int i = 0; i < n; i++){
maxrow = k - i;
jg1 = 0;
//开始输出第一个*号前有几个空格
for(int j = 0; j < i; j++){
printf(" ");
}
for(int j = i; j < maxrow; j++){
if(jg1 % 2 == 0){
printf("*");
}
else{
printf(" ");
}
jg1++;
}
printf("\n");
}
//倒着再输出一遍,注意别重复输出一个*的那一行
for(int i = n-2; i >= 0; i--){
maxrow = k - i;
jg1 = 0;
for(int j = 0; j < i; j++){
printf(" ");
}
for(int j = i; j < maxrow; j++){
if(jg1 % 2 == 0){
printf("*");
}
else{
printf(" ");
}
jg1++;
}
printf("\n");
}
}
return 0;
}