软件工程——寻找水桶

1、题目

三人行设计了一个灌水论坛。随着论坛的发展,管理员发现水王没有了,但是统计结果表明,有三个发帖很多的ID。据统计他们的发帖数量超过了1/4,你能从发帖列表中快速找到他们吗?

2、设计思路

沿用上个水王的思想,将三个水桶看成一个整体,就是给三个不一样的ID赋值三个变量,有一样的就加一,都不一样,三个变量都减一,有变量减到0就重新赋值。

3、源码

#include<iostream.h>
#include "stdlib.h"
int main()
{
	int length;
	int Idnum[3]={0,0,0};
	int ID[3]={0,0,0};
	cout<<"请输入总帖子数量:"<<endl;
	cin>>length;
	int * curId=new int [length];
	cout<<"请输入水军的ID列表"<<endl;
	for(int j=0;j<length;j++)
	{
		cin>>curId[j];
	}
	for(int i=0;i<length;i++)
	{
		if(Idnum[0]==0 && curId[i]!=ID[1] && curId[i]!=ID[2])
		{
			Idnum[0]=1;
			ID[0]=curId[i];
		}
		else if(Idnum[1]==0 && curId[i]!=ID[0] && curId[i]!=ID[2])
		{
			Idnum[1]=1;
			ID[1]=curId[i];
		}
		else if(Idnum[2]==0 && curId[i]!=ID[0] && curId[i]!=ID[1])
		{
			Idnum[2]=1;
			ID[2]=curId[i];
		}
		else if(curId[i]!=ID[0] && curId[i]!=ID[1] && curId[i]!=ID[2])
		{
			Idnum[0]--;
			Idnum[1]--;
			Idnum[2]--;
		}
		else if(curId[i]==ID[0])
		{
			Idnum[0]++;
		}
		else if(curId[i]==ID[1])
		{
			Idnum[1]++;
		}
		else if(curId[i]==ID[2])
		{
			Idnum[2]++;
		}
	}
	cout<<"三个水桶ID为:"<<ID[0]<<" "<<ID[1]<<" "<<ID[2]<<endl;
	return 0;
}

4、截图

时间: 2024-12-26 09:04:05

软件工程——寻找水桶的相关文章

寻找水桶---软件工程

一.题目与设计思路 三人行设计了一个灌水论坛.信息学院的学生都喜欢在上面交流灌水,传说在论坛上有”水桶“,他不但喜欢发帖,还会回复其他ID发的每个帖子.坊间风闻三个“水桶”发帖数目超过了帖子数目的1/4. 如果你有一张当前论坛的帖子(包括回帖)列表,其中帖子的作者的ID也在其中,你能快速的找到这个传说中的水桶吗? (1)发帖者的id存储到一个一维数组. (2)利用“消消乐”小游戏的思想,消除元素id不同的元素,最后剩下的便是“水桶”. (3)扩展水王的思想,一个变3个. (4)输出结果. 二.源

软件工程随堂小作业——寻找“水桶”(C++)

一.设计思想 思路与寻找一个水王相似,这次只是计数器和嫌疑人变量都设置为数组.每次选取一个ID与三个嫌疑人比较,若有相同则计数:若三个都不相同,则三个计数器都减一.若减为0,则从新赋值给嫌疑人. 二.源代码 1 // 水桶.cpp : Defines the entry point for the console application. 2 // 3 4 #include "stdafx.h" 5 #include "iostream.h" 6 #define M

软件工程——寻找水王

1.题目 三人行设计了一个灌水论坛.信息学院的学生都喜欢在上面交流灌水,传说在论坛上有一个“水王”,他不但喜欢发帖,还会回复其他ID发的每个帖子.坊间风闻该“水王”发帖数目超过了帖子数目的一半. 如果你有一张当前论坛的帖子(包括回帖)列表,其中帖子的作者的ID也在其中,你能快速的找到这个传说中的水王吗? 2.思路 从第一个ID开始,与后续的发帖ID进行比较,若相同计数器则加一,否则减一,减到0后重新赋值 3.源码 #include "iostream.h" #define MAXSIZ

软件工程 寻找小水王

设计思想: 随着论坛的发展,管理员发现水王没有了,但是统计结果表明,有三个发帖很多的ID.据统计他们的发帖数量超过了1/4.已知小水王有三个,而且他们每个人发帖数均超过了1/4,按照id给所有帖子排序,这样同id的帖子就聚集在一起,由于每个水王的发帖数均大于1/4,所以可以根据每个id在数组中的位置找出三个水王. 代码: 实验结果:

软件工程课堂作业——寻找水王2

一.题目 随着论坛的发展,管理员发现“水王”没有了,但是统计结果表明,有三个发帖很多的ID.据统计他们的发帖数量超过了总和的1/4.你能从发帖列表中快速找到他们吗? 二.设计思想 根据三个水王号的ID数均超过四分之一可以知道只要非水王号出现一次,水王号ID必定都对应会出现一次.则目前判断为水王号的ID出现则对应次数加一,非水王号出现一次则目前判断为水王号出现次数的均减一.运用这种算法则需要判断输入的ID号是否符合条件,通过判断最终判断出来的ID号的出现的次数之差可以判断出是否满足“发帖数量超过了

软件工程课堂作业——寻找“水王”

一.题目 三人行设计了一个灌水论坛.信息学院的学生都喜欢在上面交流灌水,传说在论坛上有一个“水王”,他不但喜欢发帖,还会回复其他ID发的每个帖子.坊间风闻该“水王”发帖数目超过了帖子数目的一半. 如果你有一张当前论坛的帖子(包括回帖)列表,其中帖子的作者的ID也在其中,你能快速的找到这个传说中的水王吗? 二.设计思想: 由于该“水王”发帖数目超过了帖子数目的一半,可以通过相邻两个帖子的作者ID是否相同来寻找.如果相邻两个ID不同,则将两个ID略过:若相等,则判断之前是否有怀疑是“水王”的ID,如

软件工程随堂小作业—— 寻找“水王”(C++)

一.设计思路 (1)输入发帖ID记录表 (2)从第一个ID开始,与后续的发帖ID进行比较,若相同计数器则加一,否则减一.若计数器的数值被减为零,则重新选取当前ID开始记录比较. (3)输出结果 二.源代码 1 // shuiwang.cpp : Defines the entry point for the console application. 2 // 3 4 #include "stdafx.h" 5 #include "iostream.h" 6 #def

敏捷软件开发与传统软件工程

敏捷软件开发与传统软件工程 北航计算机学院 14061157 李奕成 引言 软件开发过程是软件工程中相当重要的一环.一个正确.高效的软件过程能够提高软件工程活动的稳定性.可控性和有组织性.但是,并不存在一种软件过程能够完美的适应所有的软件工程情况.因此,在不同情况下选择合适的软件开发过程显得尤为重要.现代软件工程方法必须是"灵活"的,也就是要求软件工程活动.控制以及工作方法适合于项目团队和要开发的产品. 说到软件工程.敏捷开发,就要提到软件过程的发展历史.20世纪60年代,不存在现代意

软件工程心得体会

对于软件工程的认识. 软件工程是把系统的.有序的.可量的方法应用到软件的开发.运营和维护上的过程.它是一门实践性很强的学科,所以在实际的软件研制过程中,人员的素质占据着非常重要的地位.在具体的软件工程项目中,人员的角色定位,任务分配,以及团队内成员之间的协调配合是非常重要的.人员的角色定位以及任务分配,是属于技术层面的资源配置,软件过程的各个环节,都必须有最合适的人选,该环节才能得到最有效的技术资源,而整个团队内成员之间的配合协调,则是属于管理层面的资源整合,通过充分调度软件生产的各个环节,精细