| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 1057 人关注过本帖
标题:错在哪里,看看!
取消只看楼主 加入收藏
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
快速回复:错在哪里,看看!
数据加载中...
 
   



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

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