嗨我想用*打印這樣的形狀。 此形狀的高度爲6,如果輸入另一個偶數作爲高度,它將生成具有該高度的形狀。C編程 - 星號形狀
到目前爲止,我這樣做,但這種失敗..... 有人會告訴我哪裏做錯了嗎?謝謝!
#include <stdio.h>
#include <stdlib.h>
int main()
{
int height;
int i, j;
printf("Please input height with an even integer ");
scanf("%d", &height);
for (i=height/2; i>=1; i--)
{
for (j=1; j<=height; j++)
{
if (i==height/2)
printf("*");
else if (j=i || j==(height-(i-1)))
printf("*");
else
printf(" ");
}
printf("\n");
}
system("PAUSE");
return 0;
}
謝謝大家!
其實我早先嚐試了另一種方法,結果就出來了。
我首先打印出最上面一行和最下面一行,並將星號和空格放在應該出現的位置。
這是我的解決方案。
void printStar(int x);
int main(int argc, char *argv[])
{
int height, value = 2 , value2;
printf("Please input height with an even integer ");
scanf("%d", &height);
value2 = height-1;
for (int i=1; i<=height; i++)
{
if(i==1){
printStar(height);
}else if(i == height){
printStar(height);
}else{
for(int y = 1 ; y<=height ; y++){
if(value == y || value2 == y){
printf("*");
}else{
printf(" ");
}
}
value++;
value2--;
}
printf("\n");
}
system("PAUSE");
return 0;
}
void printStar(int x){
for(int i = 0 ; i<x ;i++){
printf("*");
}
}
嘗試http://codereview.stackexchange.com/。或者使用調試器逐行執行代碼。 – 2013-02-16 13:26:31
'else if(j = i || j ==(height-(i-1)))''你的意思是'j == i'? – Maroun 2013-02-16 13:32:34