-1

我希望我的 char 运行,以确定我的开关是否会运行。我在放置循环的开始时遇到问题。我正在使用整数选项和大小创建模式。该选项选择模式类型 1-4,大小决定模式将具有的列数和行数。

#include <iostream>
using namespace std;
int main()
{
int option, size;
char run;
cout << "This program is writen by Alex Walter. "
     << "The purpose of this program is to create four different patterns of different sizes. "
     << "The size of each pattern is determined by the number of columns or rows. "
     << "For example, a pattern of size 5 has 5 columns and 5 rows. "
     << "Each pattern is made up of character P and a digit, which shows the size. "
     << "The size must be between 2 and 9. ";

cout << "Menu" << endl
     << "1. Pattern One " << endl
     << "2. Pattern Two " << endl
     << "3. Pattern Three " << endl
     << "4. Pattern Four " << endl
     << "0. Quit " << endl;

cout << "Choose an option (between 1 and 4 or 0 to end the program): ";
cin >> option;
cout << "Choose a pattern size (between 2 and 9): ";
cin >> size;

do{
switch(run)
{

case 1:
            cout << "Pattern 1: " << endl << endl
             << size << "PPPP" << endl
             << "P" << size << "PPP" << endl
             << "PP" << size << "PP" << endl
             << "PPP" << size << "P" << endl
             << "PPPP" << size << endl;
break;

case 2:
            cout << "Pattern 2: " << endl << endl
            << "PPPP" << size << endl
            << "PPP" << size << "P" << endl
            << "PP" << size << "PP" << endl
            << "P" << size << "PPP" << endl
            << size << "PPPP" << endl;
            break;

case 3:
            cout << "Pattern 3: " << endl << endl
            << "PPPPP" << endl
            << "PPPP" << size << endl
            << "PPP" << size << size << endl
            << "PP" << size << size << size << endl
            << "P" << size << size << size << size << endl;
                break;
case 4:
            cout << "Pattern 4: " << endl << endl
            << "PPPPP" << endl
            << size << "PPPP" << endl
            << size << size << "PPP" << endl
            << size << size << size << "PP" << endl
            << size << size << size << size << "P" << endl;
                break;
}
cout << "Run again?" << endl;
cin >> run;
}while(run == 'y' || run == 'Y' );


} 

我只编写了足够的代码来为示例创建一个模式。但我也在寻找一种循环创建模式的方法。请不要只给我一个答案我真的想弄清楚我只是卡住了,与班上的任何学生都没有联系。

4

1 回答 1

1

您试图run用于两个不同的目的:

  1. 输入“y”或“Y”继续运行,输入“n”或“N”停止运行。
  2. 计算循环次数并在 switch 语句中使用来确定你在哪个运行。

解决方案是改为使用两个单独的变量。用于run上面的#2,但是你需要初始化它,这意味着在程序的最顶部给它一个初始值。要初始化,请提供您声明它的值,如下所示:

int run = 1;

请注意,我将类型从更改charint-- 因为在 switch 语句的情况下,您将其与整数而不是字符进行比较。

现在确保run每个循环都增加(加 1)。(您还应该考虑如果/当run达到 5 时会发生什么,这不在您的 switch 语句中!)

++run;

在 switch 语句之后的某个地方执行此操作。

现在添加一个额外的变量,例如input, 并使用它而不是run在您获取输入的底部cin并将其与while语句中的 'y' 或 'Y' 进行比较。您也可以在顶部声明变量,并且不需要初始化它,尽管无论如何初始化它是一个好习惯:

char input = 'Y';
于 2013-10-14T22:59:54.520 回答