好的,所以我需要让输出看起来像星号菱形,每行增加 2 个星号,直到中间有 9 个星号……然后行减少。功能 main 必须是:
int main (void){
int i;
i = 0;
while (i < 5){
printline (4-i, i*2+1);
i = i + 1;
}
i = 3;
while (i >= 0) {
printline (4-i, i*2+1);
i = i - 1;
}
return 0;
}
现在我应该定义函数 printline 以在每次调用时打印单行图形。它需要 2 个参数,空格数和应在行上打印的星号数。使用计数器控制重复打印适当数量的空格,然后再次打印适当数量的星号。
char print_line (int spaces, int stars){
for (int i = 4; i>=spaces; i--){
printf(" ");
}
for (int i = 1; i<=stars; i+=2){
printf("*");
}
printf("\n");
}
呜呼!我就快完成了!输出有点正确,除了不是一行有 4 个空格和一个星,一行有 3 个空格和 3 个星,依此类推,直到没有空格和 9 个星,(然后反转)......我得到一条线有一个星,有一个空格和 2 个星的行,一个有两个空格的行,三个星,等等,最多 4 个空格,五个星(然后反转)......
printline 不同的原因是因为我写这个有问题有时,每当我尝试写它时,我都会不断地使用斜体......