zoukankan      html  css  js  c++  java
  • 把一下程序中的print()函数改写成

    源代码:

    #include <iostream>
    using namespace std;
    void print( int w )
    {  
      for( int i = 1 ; i <= w ; i++ )
           {  

    for( int j = 1 ; j <= i ; j++ ) cout << i << " " ; cout << endl ; } } int main() { print( 5 ) ; }

    错误代码:

    //错误代码
    #include<iostream>
    using namespace std;
    int print(int w)
    {
        if (w == 1)
        {
            for (int i = 1; i <= w; i++)
            {
                cout <<w << " ";
            }
            cout << endl;
            return 2;
        }
        for (int i = 1; i <= print(w - 1); i++)      //这里有错
    //因为print(w-1)在for循环的条件表达式里,所以每走一次循环都会执行一次
        {
            cout << w << " ";
        }
        cout << endl;
        return w + 1;
    }
    int main()
    {
        int a;
        cin >> a;
        print(a);
        system("pause");
    }

    然后输出了一堆莫名奇妙的东西。

    经过一番调试后,找出了问题所在,改写了代码,把递归的代码部分放到循环外面,问题解决。

    正确代码:

    #include<iostream>
    using namespace std;
    int print(int w)
    {
        if (w == 1)
        {
            for (int i = 1; i <= w; i++)
            {
                cout <<w << " ";
            }
            cout << endl;
            return w+1;
        }
        int a = print(w - 1);      
    //把print(w-1)放到循环外面,并用变量a来传递返回值
        for (int i = 1; i <= a; i++)
        {
            cout << w << " ";
        }
        cout << endl;
        return w + 1;
    }
    int main()
    {
        int a;
        cin >> a;
        print(a);
        system("pause");
    }

    正确输出:

    附上答案里面的代码(比较简洁)

    #include<iostream>
    using namespace std;
    void print(int w)
    {
        int i;
        if( w )
        { 
            print( w-1 );
            for( i=1; i<=w; i++ ) 
                cout << w << "  ";
            cout << endl;
         }
    }
    void main()
    {
        print( 5 );
    }
  • 相关阅读:
    第一章 Shell基础知识
    keepalived与LVS实现高可用
    集群简介
    基于NFS v4版本搭建NFS服务器
    LDAP安装步骤
    Nginx配置阿里云https服务
    zabbix基础
    Apache、Nginx和Tomcat之虚拟主机配置
    标准盒模型和怪异盒模型的区别
    js中数组扁平化处理
  • 原文地址:https://www.cnblogs.com/urahyou/p/10074061.html
Copyright © 2011-2022 走看看