我使用这个函数来搜索用户输入的数字,即x。其想法是,用户输入马拉松比赛中的跑步者的号码,程序输出该号码所属的跑步者的信息。如果用户输入0,循环也应该结束。
问题是,它要么只在第一次起作用,第二次不起作用,要么根本不起作用,只显示runner[0]的信息。
这是代码(对于西班牙语,很抱歉)
void search(race *runner){
int flag = 1;
int x;
while (flag = 1){
cout << "Porfavor entre el numero del corredor, si desea terminar la busqueda entre el numero 0 "<<endl;
cin >> x;
cout << endl;
for (int i = 0; i < size-1; i++){
if (x = runner[i].number)
cout << "El corredor que usted busca es " <<
runner[i].name << " con el numero " << runner[i].number<<endl;
if (x = 0)
flag = 0;
}
}
}发布于 2015-02-18 13:35:58
除了明显的修改之外
while (flag = 1){至
while (flag == 1){
// ^^^和变化
if (x = runner[i].number)至
if (x == runner[i].number)
// ^^^您可以通过将检查x是否等于0的位置移动到代码中来避免一些不必要的工作。
// while (flag = 1){
// This is also wrong.
while (flag == 1){
cout << "Porfavor entre el numero del corredor, si desea terminar la busqueda entre el numero 0 "<<endl;
cin >> x;
cout << endl;
if ( x == 0 )
{
flag = 0;
// No need to go through the loop for this case.
}
else
{
for (int i = 0; i < size-1; i++){
if (x == runner[i].number)
cout << "El corredor que usted busca es " <<
runner[i].name << " con el numero " << runner[i].number<<endl;
}
}
}https://stackoverflow.com/questions/28576579
复制相似问题