标题:错在哪里,看看!
取消只看楼主
Soul寂
Rank: 1
等 级:新手上路
帖 子:117
专家分:1
注 册:2008-9-29
结帖率:100%
 问题点数:0 回复次数:4 
错在哪里,看看!
这是一个简单的数组程序:
我设置了两个数组name[50]和num[50]分别用来存放学生的 姓名学号
用void input_data()和void search(string x)两个函数分别用来  获取数据 和 数据查询
程序代码:
#include <iostream>
#include <string>
using namespace std;
int n;
string name[50],num[50];
int main()
{
    void input_data();
    void search(string);
    string find_name;
    cout<<"please input the number of class:"<<endl;
    cin>>n;
    input_data();
    cout<<"please input name you  want:";
    cin>>find_name;
    search(find_name);
    return 0;
}

void input_data()
{
    int i;
    for(i=0;i<n;i++)
    {
        cout<<"please input name and number of student"<<i+1<<": ";
        cin>>name[i]>>num[i];
    }
}
void search(string x)
{
    int i;
    bool flag=false;
    for(i=0;i<n;i++)
    {
        if(name[i]==x)
            cout<<name[i]<<"  has been found,his number is:"<<num[i]<<endl;
        flag=true;
                  break;
    }
    if(flag==false)
        cout<<"can not find name"<<endl;
}


问题就处在break上,不管我输入什么,它总是查询不到!如图:连"can not find name"都不输出!

这说明程序自动跳出了,于是我  注释了break
程序可以查询:


但是我如果查询了我没有输入的数据,程序不输出:  "can not find name"如图:



能不能告诉我这是为什么呢?万分感谢!

[[it] 本帖最后由 Soul寂 于 2008-10-26 21:48 编辑 [/it]]
搜索更多相关主题的帖子: void 数据 include search please 
2008-10-26 21:40
Soul寂
Rank: 1
等 级:新手上路
帖 子:117
专家分:1
注 册:2008-9-29
得分:0 
为什么这里不能有break呢?
2008-10-26 21:44
Soul寂
Rank: 1
等 级:新手上路
帖 子:117
专家分:1
注 册:2008-9-29
得分:0 
回复3L:
你好像改错了吧!你看:

b ,本来存在的,看是确查询不到!!!
2008-10-26 22:06
Soul寂
Rank: 1
等 级:新手上路
帖 子:117
专家分:1
注 册:2008-9-29
得分:0 
回复 6# zxwangyun 的帖子
这是我的函数:
void search(string x)
{
    int i;
    bool flag=false;
    for(i=0;i<n;i++)
    {
        if(name[i]==x)
           cout<<name[i]<<"  has been found,his number is:"<<num[i]<<endl;
           flag=true;
           break;
    }
    if(flag==false)
        cout<<"can not find name"<<endl;
}
这是你的函数:
void search(string x)
{
    int i;
    bool flag=false;
    for(i=0;i<n;i++)
    {
        if(name[i]==x){
            cout<<name[i]<<"  has been found,his number is:"<<num[i]<<endl;
            flag=true;
            break;
       }
    }
    if(!flag)
        cout<<"can not find name"<<endl;
}
好像就是把if(flag==false)改成if(!flag),  能告诉我为什么这样改? 万分感谢!
2008-10-26 22:16
Soul寂
Rank: 1
等 级:新手上路
帖 子:117
专家分:1
注 册:2008-9-29
得分:0 
晕!
知道错误了,我居然少了一个括号!!!真实粗心啊!!!

谢谢帮助我的兄弟!
2008-10-26 22:33



参与讨论请移步原网站贴子:https://bbs.bccn.net/thread-240753-1-1.html




关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.129433 second(s), 9 queries.
Copyright©2004-2025, BCCN.NET, All Rights Reserved