#include <iostream> #include <string> using namespace std; class Exam{ public: string num; int disease[100]; int count; Exam(){}; friend void print(Exam*e, int count, int *d); }e[3000]; void print(Exam*e, int count, int *d){ int i=0,j=0,k=0; for(i=0;i<e->count;i++){ while(e->disease[j]!=0){ while(d[k]!=0){ if(e->disease[j]==d[k]){ cout<<e->num<<' '<<d[k]<<endl; break; } k++; } j++; } } } int main (){ int i=0,j=0,m=0; while(1){ cin>>e[i].num; if(e[i].num=="0"){ break; } cin>>e[i].count; for(j=0;j<e[i].count;j++){ cin>>e[i].disease[j]; j++; } i++; } int notice[100]; j=0; while(1){ cin>>notice[j]; if(notice[j]==0){ break; } j++; } m=i; for(i=0;i<m;i++){ print(&e[i],e[i].count,notice); } }
时间: 2023-07-15 16:13:50 浏览: 148
这段代码的功能是读入多个病人的编号、疾病数量和疾病编号,然后再读入多个通知的疾病编号,最后输出哪些病人患有通知中的疾病。具体实现是定义一个 Exam 类来存储每个病人的信息,其中包括病人编号和疾病编号数组,还有一个 count 变量记录疾病数量。然后定义了一个 print 函数来输出符合条件的病人编号和疾病编号。
在 main 函数中,先读入所有病人的信息,并保存到一个 e 数组中,然后读入所有通知的疾病编号,并保存到一个 notice 数组中。最后遍历所有病人,调用 print 函数来输出符合条件的病人编号和疾病编号。
需要注意的是,该代码存在一些问题。例如,读入疾病编号时有不必要的 j++ 操作,会导致漏读一些疾病编号;print 函数中的 j 和 k 变量没有及时重置,可能会导致一些错误的输出。
相关问题
c string转int
可以使用函数库中的 stoi 函数将 C++ 的字符串转为整数。例如:
```cpp
#include <iostream>
#include <string>
using namespace std;
int main()
{
string str = "123";
int num = stoi(str);
cout << num << endl;
return 0;
}
```
输出:123
阅读全文