0

誰か助けてくれませんか?このコードは、最初のラウンドでは正常にコンパイルされますが、ループすると正しく出力されません。私は間違いを見つけることができません..ありがとう!最初にXcodeでコンパイルすると、右の正方形が中空になりましたが、2回目に入力すると正方形が出力されませんでした。

#include <iostream>
using std::cout;
using std::cin;
using std::endl;


#include <string>
using std::string;
#include <cstdlib>

int main()
{
    int a;
    int b;
    int num=0;
    string buf;

    //initialize a and b
    a = 1;
    b = 1;

    // ask user to repeat the process again at end of the first promt
    while( true )
    {
        cout << "Please enter size of square between #1-20: \n";
        cin >> buf; num = atoi (buf.c_str());
        cin.ignore(1000, 10);

        if( num < 1 || num > 20 )
            break;

        //process of printing square
        while ( num >= a)
        {
            b = 1;
            while ( num >= b )
            {
                if ( a == 1 || a == num || b == 1 || b == num )
                    cout << "*";
                else
                    cout << " ";
                b++;
            }
            cout << endl;
            a++;
        }
    }
}
4

2 に答える 2

0
#include<iostream>
#include<conio>
main()
{
    int squareHeight, squareWidth;
    cout<< "Enter Height:  ";
    cin>>  squareHeight;
    cout<< "Enter Widht:   ";
    cin>>  squareWidth;
  for(int width=1; width<=squareHeight; width++)
    {
   if(width <= 1)
   for(int width=1; width<=squareWidth; width++)
            {
                cout<< "*";
            }
        else if(width<squareHeight)
        {
            cout<< endl;
for(int width2=1; width2<=squareWidth; width2++)
      {
      if(width2==1 || width2==squareWidth)
                    cout<< "*";
                else
                    cout<< " ";
            }
        }
        else
        {
            cout<< endl;
for(int width3=1; width3<=squareWidth; width3++)
   {
                cout<<"*";
            }
        }
    }
    getch ();
}
于 2014-01-06T22:09:07.350 に答える
0

a および b 変数をリセットしていません。これらの行を配置する必要があります

//initialize a and b
a = 1;
b = 1;

while(true)ループの最初の内側

于 2013-08-28T21:00:32.270 に答える