Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/date/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C 恒星金字塔_C - Fatal编程技术网

C 恒星金字塔

C 恒星金字塔,c,C,您的工作是使用for循环打印出星星的金字塔。您的程序应该将整数作为参数,并打印出一个以给定大小为基数的星号金字塔。例如,如果用户输入为3,则您的程序应打印出: * ** *** 这就是我所做的。程序没有任何错误,但它不会打印出金字塔并按预期返回。一旦我开始工作,我会添加更多的if语句来解释更大的金字塔 #include <stdio.h> void main(int size){ if (size == 0) {return; }; if (size == 1) {printf(

您的工作是使用for循环打印出星星的金字塔。您的程序应该将整数作为参数,并打印出一个以给定大小为基数的星号金字塔。例如,如果用户输入为3,则您的程序应打印出:

*
**
***

这就是我所做的。程序没有任何错误,但它不会打印出金字塔并按预期返回。一旦我开始工作,我会添加更多的if语句来解释更大的金字塔

#include <stdio.h>

void main(int size){
if (size == 0)
{return;
};
if (size == 1)
{printf("*\n");
};
if (size == 2)
{printf("**\n");
};
if (size == 3)
{printf("***\n");
};
if (size = 4)
{printf("****\n");
};
if (size == 5)
{printf("*****\n");
};
if (size ==6)
{printf("******\n");
};

 main(size-1);}

这一点也不漂亮,但它应该能起作用

#include <stdio.h>

void main(){
    int size = 3,i;      //you can't just pass a value into main like that so I've initialised size here
    while (size){        //loop controlling line output
        i = 0;
        while (i++<size){//loop controlling * output within line
            putchar('*');//output a *
        }
        putchar('\n');   //output a newline (go to next line)
        size--;
    }
}

如果你检查for循环的语法,你应该能够很容易地翻译它来使用它们。我很好,但我仍然不会把你的整个作业都写在一个盘子上。

颠倒是因为主调用的位置是最后一个

#include <stdio.h>

int main(int argc, char **argv){
    if(argc){
        int i;
        (void)main(argc-1, argv);
        for(i=0;i<argc;++i)
            putchar('*');
        putchar('\n');
    }
    return 0;
}

打印行-列图形是一个二维问题,因此需要一个二维解决方案:两个循环,一个嵌套在另一个循环中。您可以只使用一个循环,即在一行中打印星号,并在尝试时重新调用程序,但每次的结果都会变小。要变大,需要两个程序参数:max size和current row。在这种情况下,您无法摆脱对两段数据的需求

请尝试使用其他人在评论中建议的两个循环


我将期望的结果称为三角形,因为对我来说,棱锥体必须是从左到右对称的,因此只能有奇数行。

我将添加更多的if语句来解释更大的棱锥体-不,你应该使用它,显然,你的工作是使用……请给你的导师或助教一些时间来澄清你的作业。这里的任何人都可以写下需要为你做的事情,但你似乎错过了太多的基本知识,这对你或你的同龄人来说是公平的。我想我即将完成这项任务。最后没有错误,它打印的是金字塔,但却是颠倒的。我只需要最后一部分的帮助。@CoolGuy哈哈,是的,打字错误。在这种情况下,正如原始问题中所述,for循环是最佳选择:外部循环应该类似于for I=1;i@RPGillespie是的。但我不会为他完成整个任务。这足以让他知道该怎么做——不过我会在回答中提到这一点。哇:正如BLUEPIXY所说,可以在打印一行之前递归调用main,这样会导致每行按预期变大。我想我从来没有想过使用操作系统来完成for循环可以完成的工作。。。但对梅因的争论还没有被任何人讨论过。它必须是一个字符串。