gpt4 book ai didi

c++ - 嵌套循环语句不正确的结果

转载 作者:塔克拉玛干 更新时间:2023-11-03 06:47:55 26 4
gpt4 key购买 nike

我有一段程序会询问学生姓名和他/她的 10 个类(class)。该代码旨在防止重复条目,但每次我运行该程序时,它都会说每个条目都已存在。我已经经历过这件事一千次了,一辈子也弄不明白。非常感谢对我的问题的任何见解。

#include <iostream>

using namespace std;

struct student
{
string name;
string classes[10];
};

int main(int argc, char *argv[])
{
string test_name;
student entry;

cout << "Enter the name of the student you wish to insert (string) \n";
cin >> entry.name;

for(int i = 0; i < 9; i++)
{
cout << "Enter class number " << i + 1 << " For " << entry.name << endl;
cin >> test_name;

for(int j = 0; j < 9; j++)
if(test_name == entry.classes[j])
{
cout << "Class already exists for " << entry.name << ". Please try again.\n";
i -= 1;
}
else
{
entry.classes[i] = test_name;
}
}
system("PAUSE");
return EXIT_SUCCESS;
}

最佳答案

您的内部 for 循环测试所有 10 个位置,包括您要插入新类的位置。

您真的只想扫描填充的位置,看看是否有任何匹配项,然后,在循环外,如果不是重复项,则添加新类。

伪代码:

for (i = 0; i < 10; i++)
{
get class 'i';

bool repeat = false;

for (j = 0; j < i; j++) // Only check previous classes (j < i)
if (test_name == entry.classes[j])
{
repeat = true;
break;
}

if (repeat)
{
output the error
rewind 'i'
continue;
} else
{
insert the new entry
}
}

关于c++ - 嵌套循环语句不正确的结果,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19738593/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com