课堂练习——查找水王续
2015-04-27 22:48
232 查看
[b]一、设计思路[/b]
题目要求:
三人行设计了一个灌水论坛。信息学院的学生都喜欢在上面交流灌水,传说在论坛上有一个“水王”,他不但喜欢发帖,还会回复其他ID发的每个帖子。坊间风闻该“水王”发帖数目超过了帖子数目的一半。
如果你有一张当前论坛的帖子(包括回帖)列表,其中帖子的作者的ID也在其中,你能快速的找到这个传说中的水王吗?(参考核心代码)
随着论坛的发展,管理员发现水王没有了,但是统计结果表明,有三个发帖很多的ID。据统计他们的发帖数量超过了1/4,你能从发帖列表中快速找到他们吗?
设计思路:
与寻找一个水王相似的思路:
1、计数器和嫌疑人变量都设置为数组。
2、每次选取一个ID与三个嫌疑人比较,若有相同则对应计数器加1;若三个都不相同,则三个计数器都减一。若减为0,则重新给嫌疑人赋值。
[b]二、程序源代码[/b]
[b]三、运行结果截图[/b]
[b]
[/b]
[b]四、总结与心得[/b]
这次实验参考了网上的设计思路和代码,我自己确实没想到这个方法,通过借鉴,让我的思路更加的开阔,也更加丰富,这也是学习一种途径与方法,希望能学到更多。
题目要求:
三人行设计了一个灌水论坛。信息学院的学生都喜欢在上面交流灌水,传说在论坛上有一个“水王”,他不但喜欢发帖,还会回复其他ID发的每个帖子。坊间风闻该“水王”发帖数目超过了帖子数目的一半。
如果你有一张当前论坛的帖子(包括回帖)列表,其中帖子的作者的ID也在其中,你能快速的找到这个传说中的水王吗?(参考核心代码)
随着论坛的发展,管理员发现水王没有了,但是统计结果表明,有三个发帖很多的ID。据统计他们的发帖数量超过了1/4,你能从发帖列表中快速找到他们吗?
设计思路:
与寻找一个水王相似的思路:
1、计数器和嫌疑人变量都设置为数组。
2、每次选取一个ID与三个嫌疑人比较,若有相同则对应计数器加1;若三个都不相同,则三个计数器都减一。若减为0,则重新给嫌疑人赋值。
[b]二、程序源代码[/b]
// 水桶.cpp : Defines the entry point for the console application. // #include "stdafx.h" #include "iostream.h" #define MAXSIZE 30 void Find(int ID[], int len,int water[]) { int counter[3]; //计数器 counter[0]=counter[1]=counter[2]=0; water[0]=water[1]=water[2]=-1; //初始化嫌疑人列表 for(int i=0;i<len;i++) { if(counter[0]==0) //先赋值 { counter[0]++; water[0]=ID[i]; } else if(counter[1]==0) { counter[1]++; water[1]=ID[i]; } else if(counter[2]==0) { counter[2]++; water[2]=ID[i]; } else if(ID[i]==water[0]) //如果counter为0,重新赋值 { counter[0]++; } else if(ID[i]==water[1]) { counter[1]++; } else if(ID[i]==water[2]) { counter[2]++; } else //如果与三个嫌疑人的ID都不同的话,则三个计数器都自减一,直到counter为0 { counter[0]--; counter[1]--; counter[2]--; } } } int main(int argc, char* argv[]) { int ID[MAXSIZE]; //发帖记录表 int number,WaterId[3]; //发帖数目、水桶 cout<<"请输入帖子的数量:"; cin>>number; cout<<"请输入发帖ID:"; for(int i=0;i<number;i++) { cin>>ID[i]; } Find(ID,number,WaterId); cout<<"水桶是:"; for(i=0;i<3;i++) { cout<<WaterId[i]<<" "; } cout<<endl; return 0; }
[b]三、运行结果截图[/b]
[b]
[/b]
[b]四、总结与心得[/b]
这次实验参考了网上的设计思路和代码,我自己确实没想到这个方法,通过借鉴,让我的思路更加的开阔,也更加丰富,这也是学习一种途径与方法,希望能学到更多。
相关文章推荐
- 课堂练习-----查找水王
- 20162313苑洪铭 查找练习课堂测试
- 课堂小练习
- Java-蓝桥杯- 基础练习 查找整数
- 上机练习题——异常处理 课堂练习1:
- 课堂小练习—电梯
- 蓝桥杯 BASIC-5 基础练习 查找整数
- 课堂练习-寻找水王
- 课堂练习之找“水王”
- 20155322 2016-2017-2 《Java面向对象程序设计》第十二周课堂练习之Arrays和String单元测试
- 课堂练习_水桶
- 《C++沉思录》-第十章- 一个课堂练习的分析(下)
- CCNA课堂练习一:路由器链路备份功能
- 课堂代码练习补交
- 课堂练习——Hash 20162305
- 练习JsonJquery查找数据
- 课堂练习1
- 课堂练习(卖书问题)
- 课堂练习——买书问题
- 课堂练习--最少花费的购买书籍