gpt4 book ai didi

c - 查找数组中出现次数最多的数字 - C 问题

转载 作者:行者123 更新时间:2023-11-30 20:43:17 24 4
gpt4 key购买 nike

正如你们在问题中看到的那样,我遇到了这个问题。我的意思是,我真的看不出问题出在哪里,也许这是愚蠢的事情,但我无法弄清楚。所以这是代码:

#include <stdio.h>
int main() {
int i,n;
int niz[100];
int brojac[100]={0};
int maxi,mini;
printf("Sada unesi clanove niza: \n");
for(i=0;i<100;i++) {
scanf("%d",&niz[i]);
if(niz[i]==-1) {
printf("Unijeli ste -1, a to znaci kraj unosenja clanova niza.\n");
break;
}
if(niz[i]<0 || niz[i]>100){
printf("Pogresan unos. On se nece pikati.\n");
i--;
}
}
n=i;

//POVECAVAMO VRIJEDNOST NEKIH CLANOVA HISTOGRAMA(SVI CLANOVI VEC POSTOJE, I INICIJALIZOVANI SU NULOM)
for(i=0;i<n;i++) {
brojac[niz[i]]++;
}
maxi=0;
mini=-1;

//Nadji INDEX NAJVECEG ELEMENTA HISTOGRAMA
for(i=0;i<=100;i++) {
if(brojac[i]>brojac[maxi]) {
maxi=i;
}
if(brojac[i]>0 && (mini==-1 || brojac[i]<brojac[mini])) {
mini=i;
}
}

printf("Element niza koji se ponavlja najveci broj puta(a koji je i najamnji ako takvih brojeva ima vise je: %d\n",maxi);
printf("Element niza koji se ponavlja najmanji broj puta(a koji je i najamnji ako takvih brojeva ima vise je: %d",mini);
return 0;
}

最佳答案

因此,程序尝试确定输入的 1 到 100(含)之间最常出现的数字。您的方法是将这 100 个数字存储在数组 niz[] 中,然后遍历该数组并将数字在等效索引中出现的次数存储在另一个数组 brojac[] 中。因此,如果 nix[1]= 8 则 brojac[8]++;

另一个解决方案是将数字读入临时值,如果它在范围内,则增加存储在数组中数字索引处的值。确保首先将 nix[] 上的所有值初始化为零。

示例:输入 3。 3 存储在温度中。 3 在范围内,因此 niz[temp]= niz[temp]++;

但无论如何,问题是

maxi=0;
mini=-1;

//Nadji INDEX NAJVECEG ELEMENTA HISTOGRAMA
for(i=0;i<=100;i++) {// here
if(brojac[i]>brojac[maxi]) {
maxi=i;
}
if(brojac[i]>0 && (mini==-1 || brojac[i]<brojac[mini])) { // and here
mini=i;
}
}

该行 'if(brojac[i]>0 && (mini==-1 || brojac[i]

对于第一种情况,i=0 且 mini = -1 读取 '如果(brojac[0]>0 && (mini==-1 || brojac[0]

brojac[-1] 在那里不存在,因为您引用了内存中可以包含任何内容的某个随机点。

更正为:

maxi=1;
mini=1;

//Nadji INDEX NAJVECEG ELEMENTA HISTOGRAMA
for(i=1;i<=100;i++) {// i was set to zero, it's set to one cause the range the code accepts is between 1 and 100
if(brojac[i]>brojac[maxi]) {
maxi=i;
}
if(brojac[i]<brojac[mini]) {
mini=i;
}
}

关于c - 查找数组中出现次数最多的数字 - C 问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52897212/

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