[ mensi88 @ 16.12.2012. 22:35 ] @
| Zadatak glasi:
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;
}
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? :) |
[ Nedeljko @ 16.12.2012. 23:31 ] @
Najlakše je ako prethodno sortiraš niz.
Code (c):
#include <stdio.h>
#include <stdlib.h>
#define MAX 50
int main
() {
int x
[MAX
], n
, i
, max_count
= 0, count
= 1, element
;
printf("Unesi duzinu niza: ");
scanf("%d",&n
);
if(n
> MAX
) {
printf("Broj elemenata ne smije biti veci od %d!\n", MAX
);
exit(1);
}
printf("Unesi elemente niza:\n");
for(i
= 0; i
< n
; i
++){
scanf("%d", &x
[i
]);
}
for (i
= 1; i
< n
; ++i
) {
int j
;
for (j
= 0; j
< i
; ++j
) {
if (x
[i
] > x
[j
]) {
int t
= x
[i
];
x
[i
] = x
[j
];
x
[j
] = t
;
}
}
}
for (i
= 1; i
<= n
; ++i
) {
if (i
== n
|| x
[i
] != x
[i
- 1]) {
if (count
> max_count
) {
max_count
= count
;
element
= x
[i
- 1];
}
count
= 1;
} else {
++count
;
}
}
printf("Najvise se pojavljuje %d i to %d puta.\n", element
, max_count
);
return 0;
}
Edit: Ispravka uočene greške.
[Ovu poruku je menjao Nedeljko dana 17.12.2012. u 10:50 GMT+1]
[ mensi88 @ 16.12.2012. 23:47 ] @
Samo u 36. liniji treba int da se ukloni i to je to.
Hvala puno Nedeljko.
[ Nedeljko @ 17.12.2012. 09:52 ] @
E, tako mi i treba kad sam testirao C++ prevodiocem, a C++ dozvoljava to što C ne dozvoljava. Ispravio sam.
Copyright (C) 2001-2024 by www.elitesecurity.org. All rights reserved.