Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/cplusplus/131.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+中打印对边三角形函数+;_C++_C++11_Recursion_C++14 - Fatal编程技术网

C++ 在C+中打印对边三角形函数+;

C++ 在C+中打印对边三角形函数+;,c++,c++11,recursion,c++14,C++,C++11,Recursion,C++14,我们的任务是编写一个递归,可以打印如下内容: * * * * * * * * * * * * * * * * * * * * 我编写了代码,希望得到正确的图形。但我得到的却是: * * * * * * * * * * * * * * 我不明白为什么。我认为每次我的代码调用printObjectiveTriangles(n-1)时,它都需要在调用下一个printObjectiveTriangles(n-1)之前遍历包括for循环(带j的循环)在内的所有内容。有人能告诉我为什么吗?谢谢大家! v

我们的任务是编写一个递归,可以打印如下内容:

* * * *
* * *
* *
*
*
* *
* * *
* * * *
我编写了代码,希望得到正确的图形。但我得到的却是:

* * * *
*
* *
* * *
* * * *
我不明白为什么。我认为每次我的代码调用printObjectiveTriangles(n-1)时,它都需要在调用下一个printObjectiveTriangles(n-1)之前遍历包括for循环(带j的循环)在内的所有内容。有人能告诉我为什么吗?谢谢大家!

void printOpositeTriangles(int n){
    using namespace std;
    if (n==1){
        cout<<"*"<<endl;
    } else {
        for (int j=1;j<=n;j++){
            cout<<"*";
        }
        cout<<endl;
        printTriangle(n-1);
        for (int i=1;i<=n;i++){
            cout<<"*";
        }
        cout<<endl;
    }
}
void printoposite三角形(int n){
使用名称空间std;
如果(n==1){

cout您的代码中有一个大问题:您需要在printAntiviteTriangles中进行递归调用。您调用的print triangle与函数名不同 这是递归的主要思想,在你的例子中没有

试试这个

void printLine(unsigned int n)
{
    if (n == 1){
        std::cout << "*" << std::endl;
    }
    else{
        for (unsigned int j = 1; j <= n; j++){
            std::cout << "*";
        }
        std::cout << '\n';

        printLine(n - 1);

        for (unsigned int j = 1; j <= n; j++){
            std::cout << "*";
        }
        std::cout << '\n';
    }
}
void打印行(无符号整数n)
{
如果(n==1){

std::cout忘了说,我用n=4试了我的代码。你试过在调试器中运行你的程序并逐行检查你的代码吗?什么是
printTriangle
,如果它与
printopSiteTriangles
有什么关系?你说的是“递归”,但是,
printOpositeTriangles
实际上并不是递归地调用自己。@IgorTandetnik好的,所以基本上在我的家庭作业中,我应该写一个递归函数printTriangles,另一个函数printAbistiteTriangles,我打算再次调用printAbistiteTriangles,但那只是一个打字错误……所以基本上我花了很多时间一个小时,因为这个lololol错误而失败。无论如何,非常感谢。问题现在解决了。@regulus您需要学习如何使用调试器。会发生错误,没有调试器技能,您将无法找出错误所在。谢谢,我找到了答案。我本来打算调用函数本身,但不知何故它是一个错误。有什么办法让我知道吗是否可以将此问题标记为不再需要帮助?