为 C++ 编写不递增的 Taste 测试程序

Posted

技术标签:

【中文标题】为 C++ 编写不递增的 Taste 测试程序【英文标题】:Writing a Taste test program for C++ not incrementing 【发布时间】:2015-01-30 18:31:28 【问题描述】:

我正在为一个班级编写一个口味测试程序,它会在我的 if 语句之前运行良好。但是,一旦我进入我的 if 语句,它就不会增加 i,所以它永远不会离开 while 循环。

   #include <iostream>
using namespace std;

void main()

    int i = 0;
    int q = 0;
    int p = 0;
    int c = 0;
    char preference;
    int x = 0;
    cout << "How many taste tests would you like to do?" << endl;
    cin >> x;
    while (i<x)
    
        cout << "Do you prefer Coke, Pepsi, or are they the same? Use c for coke, p for pepsi, and q for the same\n";
        cin >> preference;
        if (preference == 'q' || preference == 'Q')
        
            q = q + 1;
            i++;
        
        if (preference == 'p' || preference == 'P')
        
            p = p + 1;
            i++;
        
        if (preference == 'c' || preference == 'C')
        
            c = c + 1;
            i++;
        

    
    if (p>q)
    
        cout << "Pepsi wins" << endl;
        if (c>p)
            cout << "Coke wins" << endl;
        if (c == p)
            cout << "Tie" << endl;
    

【问题讨论】:

使用调试器,单步执行以cin &gt;&gt; preference; 开头的代码,看看单步执行代码时会发生什么。 我认为你正在尝试做类似if(preference=='q' || preference=='Q') 你没有把' 放的东西 他们在 CS 课程中教授调试吗?好像没有。 您的变量pPq 等是0,因此在编译时,它不会测试是否存在您认为的匹配。也确定我以前见过这种错误,但不确定我是否能找到重复的。 【参考方案1】:

我认为您正在尝试检查确定的字符是否被cin &gt;&gt; preference 点击但您正在测试int vars,所以如果我按'q'

//if(preference==q || preference==Q) // 'q'==0 || 'p'==0
if(preference=='q' || preference=='Q') // 'q'=='q' || 'q'=='Q'

所以添加''

希望对你有帮助

【讨论】:

【参考方案2】:

将代码中的以下几行更改为预期的行为。

//if(preference==q || preference==Q)
if(preference=='q' || preference=='Q'

//if(preference==p || preference==P)
if(preference=='p' || preference=='P')

//if(preference==c || preference==C)
if(preference=='c' || preference=='C')

【讨论】:

以上是关于为 C++ 编写不递增的 Taste 测试程序的主要内容,如果未能解决你的问题,请参考以下文章

删除最多一个元素后严格递增数组的 Java 程序测试

C++ - 成员初始化和递增的顺序

C++ & Qt 应用程序的测试过程

测试 MPI_Barrier C++

为 Service Fabric 应用程序类编写单元测试

内存泄漏单元测试 C++