一、实验题目
二、实现方法及设计思路
三、实验代码
//data:2016.5.27 #include<iostream> #include<string> #include<fstream> using namespace std; void getArray(string a[]) { string strTemp; //获取文件中第一个字符,判断文件是否为空 cout << "读取帖子列表可得:" << endl; fstream fileIn; fileIn.open("id.txt", ios::in); //从文件id.txt中读取帖子列表 if (!fileIn.is_open()) //判断文件是否被打开 { cout << "没有打开文件!!" << endl; exit(0); } fileIn >> strTemp; //此句读入文件中第一个字符,必须和下面的判断连用 if (fileIn.eof()) //判断打开的文件是否为空,注意判断条件 { cout << "打开的文件为空!!" << endl; exit(0); } a[0] = strTemp; //打开的文件不为空,读入文件的内容 cout << strTemp << endl; for (int i = 1; i < 20; i++) { fileIn >> a[i]; cout << a[i] << endl; } fileIn.close(); } void getWaterRing(string strItem[]) { int intCount[3] = { 0, 0, 0 }; //设置三个变量,用来计数,记录ID号出现的个数 string strID[3] = { "#", "#", "#" }; //设置三个变量,用来记录ID号 //以下为查找三个小水王的操作 for (int i = 0; i < 20; i++) { if (strID[0] == strItem[i]) { intCount[0] = intCount[0] + 1; } else if (strID[1] == strItem[i]) { intCount[1] = intCount[1] + 1; } else if (strID[2] == strItem[i]) { intCount[2] = intCount[2] + 1; } else if (intCount[0] == 0) { intCount[0] = 1; strID[0] = strItem[i]; } else if (intCount[1] == 0) { intCount[1] = 1; strID[1] = strItem[i]; } else if (intCount[2] == 0) { intCount[2] = 1; strID[2] = strItem[i]; } else { intCount[0] = intCount[0] - 1; intCount[1] = intCount[1] - 1; intCount[2] = intCount[2] - 1; } } cout << "第一个水王是:" << strID[0] << endl; cout << "第二个水王是:" << strID[1] << endl; cout << "第三个水王是:" << strID[2] << endl; } int main() { string strItem[20]; //设置数组,用来记录每条帖子的ID号 ,此处可以不用初始化,若初始化为null则报错 getArray(strItem); getWaterRing(strItem); return 0; }
四、实验截图
五、实验心得
时间: 2024-11-12 18:17:05