Napisati program koji učitava niz cijelih brojeva X, dužine N, i koji određuje i štampa koji se element niza ponavlja najviše puta. Ako ima više takvih elemenata, odštampati bilo koji od njih. Ukoliko nema ponavljanja elemenata u nizu, javiti odgovarajuću poruku.
Evo code-a:
Code:
#include <stdio.h>
#include <stdlib.h>
#define max 50
int main()
{
int i,j,c,ind1=1,ind2=1,N,X[max];
printf("Unesi duzinu niza: ");
scanf("%d",&N);
if(N>max){
printf("Broj elemenata ne smije biti veci od 50!");
exit(1);
}
printf("Unesi elemente niza: ");
for(i=0;i<N;i++){
scanf("%d", &X[i]);
}
for(i=1;i<N;i++){
if(X[0]==X[i]){
ind1++;
}
}
i=1;
j=1;
while(i<N){
while(j<N){
if(X[i]==X[j]){
ind2++;
}
j++;
}
if(ind2>ind1){
c=X[i];
}
i++;
j=i;
ind2=1;
}
printf("Najvise se ponavlja %d",c);
return 0;
}
#include <stdio.h>
#include <stdlib.h>
#define max 50
int main()
{
int i,j,c,ind1=1,ind2=1,N,X[max];
printf("Unesi duzinu niza: ");
scanf("%d",&N);
if(N>max){
printf("Broj elemenata ne smije biti veci od 50!");
exit(1);
}
printf("Unesi elemente niza: ");
for(i=0;i<N;i++){
scanf("%d", &X[i]);
}
for(i=1;i<N;i++){
if(X[0]==X[i]){
ind1++;
}
}
i=1;
j=1;
while(i<N){
while(j<N){
if(X[i]==X[j]){
ind2++;
}
j++;
}
if(ind2>ind1){
c=X[i];
}
i++;
j=i;
ind2=1;
}
printf("Najvise se ponavlja %d",c);
return 0;
}
Za neke nizove program radi, a za neke ne. Recimo, za niz "1 2 1 3 3 4 3 5 6" program stampa trojku, sto je ispravno, dok za niz "1 1 2 3 4 5 1 6 7 8 9 10 9" izbacuje neku bzv vrijednost. Sta da ispravim da bi radio u potpunosti? :)