错在哪里,看看!
这是一个简单的数组程序:我设置了两个数组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]]