【问题标题】:C++ program, design using nested loopC++ 程序,使用嵌套循环设计
【发布时间】:2013-03-01 17:43:01
【问题描述】:

我必须编写一个程序来生成以下输出:

例子:

 & & & & & & &
   & & & & &
     & & &    
       &

到目前为止我做了什么:

#include<iostream.h>
#include<conio.h>
void main()
{
    clrscr();
    int i,j,k,n;
    cout<<"How many rows?\n";
    cin>>n;
    for(i=n;i>0;i-=2)
    {
        cout<<"\n";

        for(k=(i+1)/2;k>0;--k)
        cout<<" ";

        for(j=1;j<=i;++j)
        cout<<"&";
    }
}

输出是什么:

    & & & & &
  & & &
&

请纠正我在哪里犯了错误。 任何帮助将不胜感激。 谢谢。

【问题讨论】:

    标签: c++ for-loop nested nested-loops


    【解决方案1】:

    您的第一次尝试似乎有点复杂。我会做这样的事情:

    #include <iostream>
    
    int main()
    {
        int i,j,k,n;
        std::cout << "How many &'s in the start row?\n";
        std::cin >> n;
        std::cout << std::endl;
        for(i=0; i < n; i+=2)
        {
            for(k=0 ; k < i; k++ )
            {
                    std::cout << " ";
            }
            for(j=0; j<(n - i); ++j)
            {
                    std::cout<<" &";
            }
            std::cout << std::endl;
        }
        return (0);
    } 
    

    【讨论】:

    • 编译器在第一行给出“声明语法错误”
    • 您正在运行一个非常旧的编译器。将包含更改回旧的 #include&lt;iostream.h&gt; 并删除所有“std::”。
    • 你能给我一些链接来下载更好和改进的版本来运行 C++。我有 Windows 8。
    • 为什么不使用出色的 VS 2012 express for Desktop (microsoft.com/visualstudio/deu/downloads) 或出色的 GCC。
    • @ManojPandey 也可以accept the satisfying answer 会很棒、很放松,也是一个很好的实践。
    【解决方案2】:

    迟到总比没有好。试试这个简单的解决方案:

    #include <iostream>
    using namespace std;
    
    int main()
    {
      char ch = '&';
      for(int i = 1; i <= 4; i++)
      {
        for(int j = 1; j <= 3; j++)
        {
            if( i > j)
                cout << " ";
            else
                cout << ch;   
        }
    
        cout << ch;
    
        for(int j = 3; j >= 1; j--)
        {
            if( i > j)
                cout << " ";
            else
                cout << ch;   
        }
    
        cout << "\n";
      }
    
      return 0;
    }
    

    【讨论】:

    • 似乎提供的答案和 cmets 已经解决了这个老问题。
    【解决方案3】:
    import java.util.*;
    import java.lang.*;
    import java.io.*;
    class Design{
         public static void main(String args[])
        {
            Scanner sc=new Scanner(System.in);
            for(int i=0;i<4;i++)
            {
                for(int k=0;k<i;k++)
                {
                    System.out.print(" ");
                }
                for(int j=i;j<7-i;j++)
                {
                    System.out.print("&");
                }
                System.out.println();
    
            }
        }
    
    }
    

    【讨论】:

    • 考虑添加一个说明,说明您要解决的问题是什么以及这段代码是如何完成的。
    • 最好提供一些技术细节,比如它的工作原理,而不是仅仅发布代码。
    猜你喜欢
    • 2021-05-19
    • 1970-01-01
    • 2017-01-26
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多