C++问题:求解下面这个题目的意思,请高手帮助,根据什么输出的

先输入一组数,然后输入其分组,按照分组统计出现次数并输出
例如,输入数据3,2,3,8,8,2,3
输入对应分组1,2,3,2,1,3,1
输出:
1={2=0,3=2,8=1}
2={2=1,3=0,8=1}
3={2=1,3=1,8=0}
即每组中各数据出现的次数

数据3,2,3,8,8,2,3
分组1,2,3,2,1,3,1
对应分组为1的数据中,有0个2,2个3,1个8。
对应分组为2的数据中,有1个2,0个3,1个8。
对应分组为3的数据中,有1个2,1个3,0个8。追问

那个“=”表示数字的个数我知道。问题是我不知道分组是怎么分的,这个结果是怎么出来的,你能讲的具体一点吗?

追答

struct SUM{
int iData;int iCount;
}
void Func()
{
int iData[7] = {3,2,3,8,8,2,3};
int iGroup[7] = {1,2,3,2,1,3,1};
SUM stSum[7];int iSumCount = 0;
int iGroupNum = 1;int iCount = 0;
while(iCount < 7)
{
iSumCount = 0;
for(int i = 0; i < 7; i++)
{
if(iGroup[i] == iGroupNum)
{
for(int j = 0; j < iSumCount; j++)
{
if(stSum[j].iData == iData[i])break;
}
if(j == iSumCount)
{
stSum[j].iData = iData[j];
stSum[j].iCount = 1;
iSumCount++;
}
else
{
stSum[j].iCount++;
}
iCount++;
}
}
char szResult[128] = {0};
sprintf(szResult, "%d={", iGroupNum);
for(int i = 0; i < iSumCount; i++)
{
sprintf(szResult, "%s%d=%d,", szResult, stSum[i].iData, stSum[i].iCount);
}
sprintf(szResult+strlen(szResult)-1, "}\n";
printf(szResult);
iGroupNum++;
}
}
纯手工现打,未经调试,可以参照理解。如果出错,可拿编译结果或错误显示结果追问。

追问

麻烦你给我讲讲分组的依据,我实在是看不懂它是怎么分的。。。这题的源代码我也有,我是想自己写个,问题是连这个题的原理我都不知道,我实在不知道这个题是什么意思,组是怎么分的。你能给我讲一下么?

追答

数据3,2,3,8,8,2,3
分组1,2,3,2,1,3,1

以上数据都是可以随机录入的,分组规则是随机的,这题的目的在于让你写统计的算法。上面这两排数字是可以随机的,可以随意改变的。

来自:求助得到的回答
温馨提示:内容为网友见解,仅供参考
无其他回答

C++问题:求解下面这个题目的意思,请高手帮助,根据什么输出的
对应分组为3的数据中,有1个2,1个3,0个8。

求高手帮忙解决下面这个C++中的一个题目。看俺的代码哪里有错...
1.求个位数,直接用n%10就可以了,你那样子是求的最高位的值 2.既然你已经定了个位为7,直接给m赋7就可以了吧。3.你上面那样子算的时候,最后退出第一个while循环的时候,n是为0的,下面不能用这个n计算,你若是不断的用n\/=10,开始应该用个变量保存这个n的值 4.还有在main中,不能单单...

利用c++ 解决 24点 题目。请高手们帮忙!!谢谢
没明白你的意思。

C++难题!!!
Min ,取集合中元素的最小值 Max ,取集合中元素的最大值 Mean ,取集合中元素的平均值,平均值的计算公式为: (V1+V2+…+Vn) \/ n Median ,取集合中元素的中值,中值的计算公式为: (Vmin+Vmax) \/ 2 读入数据后,请根据各个集合选择的指标对这些集合进行降序排列,每个集合内的元素请升序排...

C++问题! 请高手帮忙!
(4)按不同类别输出学生信息,比如按性别。(5)要求对“<<”和“>>”运算符进行重载。考虑到输人学号时,也会因不小心引人空格,而且名字中也需要有空格,所以重载“>>”运算符时,需要满足这个要求。(6)抽取并计算学生的平均成绩。(7)按照至少一科成绩进行排序。(8)检索(查找)指定...

数独问题,在线求解,c++,求助高手。 初步想输出一个九行九列的数组,行1...
回答:你要干嘛啊。我可以帮你弄

c++输入输出流习题一道,请高手指教
2015-03-24 用c++语言写输入输出流的习题一道 2 2015-05-16 C++输出流重定向的问题,请高手指教 1 2009-02-23 C++的输入输出流问题 open函数 高手指教 4 2011-04-23 一道c++题,求程序代码 并适当解释下每条代买的含义,请高手... 1 2014-12-24 c++选择题 输入输出流,求答案和解释 1 2011-06-...

C\\C++问题(基础),望高手解答,(回答完整者额外加20~50币),具体在...
问题1:1、一串数据怎么强制转换?可以将一串数据的起始地址 强制转换为结构体的指针。2、(int)a+6-c是强制转换a还是a+6-c ? (int)(a+6-c)是不是转换a+6-c?(int)a+6-c是强制转换a。 (int)(a+6-c)是转换a+6-c,转换计算结果 问题2:这7个字符的地址是强制固定的, 编译器在...

一道C++题目,求高手!!!
<= 3))\/\/x!=1代表A没有打破,x==2代表B打破的,x!=2代表B没有打破 最后<=3表示至少有一个人说谎 .如果最后==3代表只有一个人说谎 cout << char(64+x) << "打破的!" << endl;return 0;} 我要说的是,你这道题你可以分析下,根据你给的条件找不出来谁打破的。

求高手解答C++入门问题!!!
pA = &a; \/\/ & 为取地址符号,由于a的地址是2000,故pA的值为2000 b = *pA; \/\/ * 为取地址为:pA内的值,即 *(2000) = 10,并将这个值存放到b中 \/\/ b的地址是系统给的,没有已知条件,但与本题无关。。(*pA) ++; \/\/ 先算括号内,即是*pA,...

相似回答