gpt4 book ai didi

计算一个整数与自己相等的次数,然后计算百分比

转载 作者:太空宇宙 更新时间:2023-11-04 04:54:55 25 4
gpt4 key购买 nike

我有一个数组,数组中有整数。我正在尝试计算数组中整数重复的次数。之后我想打印百分比。这是我到目前为止所拥有的。

for(i = 2; i < 8; i++){
mmblk[i] = (num[i] / bsize); //mmblk[i] =0,0,1,9,0,1
if(mmblk[i] == mmblk[i]){
count ++;
p = count/num[0];
percent = (p * 100);
}
}
printf("Highest possible hit rate = %d/%d = %d %\n", count, num[0], percent);//num[0]=6

对于我得到的输出:最高可能命中率 = 0/6 = 0

输出应该是这样的:最高可能命中率 = 3/6 = 50 %

我知道出了点问题,但我不知道是什么。任何帮助将不胜感激。

最佳答案

所以如果我没理解错的话,你是在寻找数组中重复值的最大数量。

func( {1,2,3} ) = 0
func( {1,1,3} ) = 2
func( {1,1,1} ) = 3

要获得百分比,只需将该结果除以数组的长度即可。

问题是你的函数太简单了,根本不是解决方案。

我在第一种方法中提出的解决方案是使用另一个名为 counts 的数组。这与源数组的长度相同。它最终是源数组中每个数字出现的次数。

对于源数组中的每一项,您计算该数字出现的次数,并将结果存储在计数中。然后找到计数数组的最大值,并且您有 a) 您要查找的最大重复值,以及 b) 源数组中相应的最大重复值的索引。

例如{0,0,1,9,0,1}:

src    counts
0 3 Max
0 3
1 2
9 1
0 3
1 2

对此的一个优化是,在您计数时,如果您在数组的前面遇到相同的数字,您可以停止,因为您已经计算了该值的重复。

有了它,您的结果是:

src    counts
0 3 Max
0 0
1 2
9 1
0 0
1 0

另一个优化是只从数组中的当前索引开始计数。这与其他优化的原因相同。

结果:

src    counts
0 3 Max
0 2
1 2
9 1
0 1
1 1

关于计算一个整数与自己相等的次数,然后计算百分比,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9918927/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com