#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 19:13:50 浏览: 31
这段代码的功能是读入多个病人的编号、疾病数量和疾病编号,然后再读入多个通知的疾病编号,最后输出哪些病人患有通知中的疾病。具体实现是定义一个 Exam 类来存储每个病人的信息,其中包括病人编号和疾病编号数组,还有一个 count 变量记录疾病数量。然后定义了一个 print 函数来输出符合条件的病人编号和疾病编号。
在 main 函数中,先读入所有病人的信息,并保存到一个 e 数组中,然后读入所有通知的疾病编号,并保存到一个 notice 数组中。最后遍历所有病人,调用 print 函数来输出符合条件的病人编号和疾病编号。
需要注意的是,该代码存在一些问题。例如,读入疾病编号时有不必要的 j++ 操作,会导致漏读一些疾病编号;print 函数中的 j 和 k 变量没有及时重置,可能会导致一些错误的输出。
相关问题
#include <iostream> #include <string> #include <stack> #include <vector> #include <iomanip> using namespace std; 逐行注释以上代码
这是一段C++的程序代码,使用了几个标准库的头文件。以下是逐行的注释:
```
#include <iostream> // 输入输出流库头文件
#include <string> // 字符串库头文件
#include <stack> // 栈库头文件
#include <vector> // 向量库头文件
#include <iomanip> // 格式控制库头文件
using namespace std; // 命名空间
```
这段程序代码导入了五个标准库的头文件,分别是iostream、string、stack、vector、iomanip,它们分别用于处理输入输出、字符串、栈、向量和格式控制。其中iostream是C++中最常用的输入输出流库,string是用于字符串操作的库,stack是用于栈数据结构的库,vector是用于动态数组的库,iomanip是用于格式化输出的库。
最后一行代码使用了命名空间std,这意味着所有的标准库函数和变量都在std命名空间中。如果不使用using namespace std,则需要在使用标准库函数时加上std::前缀。
#include <iostream> #include <queue> #include <string> using namespace std;对代码进行注释
代码注释如下:
```c++
#include <iostream> // 引入输入输出流库
#include <queue> // 引入队列库
#include <string> // 引入字符串库
using namespace std; // 使用 std 命名空间
// 主函数
int main() {
queue<string> q; // 定义一个字符串队列 q
// 往队列中添加元素
q.push("apple");
q.push("banana");
q.push("orange");
// 输出队列头部元素
cout << q.front() << endl; // 输出:apple
// 弹出队列头部元素
q.pop();
// 输出队列头部元素
cout << q.front() << endl; // 输出:banana
// 输出队列中元素的个数
cout << "The size of the queue is " << q.size() << endl; // 输出:The size of the queue is 2
return 0; // 返回 0 表示程序正常结束
}
```