Zadatak glasi ovako:
Naći mesto prvog i poslednjeg pojavljivanja datog broja u uređenom nizu brojeva.
Moj kod ide ovako:
Šta mi ovde kod koda ne valja?
Konkretno mislim na nalaženje prvog i poslednjeg broja u nizu.
Ne ispisuje mi tačne vrednosti.
Kad se traženi broj pojavljuje prvi i poslednji put u nizu, onda su vrednosti ok. Kad se nalazi na drugim mestima onda ne ispisuje tačne vrednosti.
Nešto nisam otkucao kako valja.
Hvala
Naći mesto prvog i poslednjeg pojavljivanja datog broja u uređenom nizu brojeva.
Moj kod ide ovako:
Code:
#include <stdio.h>
#include <stdlib.h>
main(){
int *a,i,j,n,b,x;
while(1){
int p1=-1,p2=-1;
/* Odredivanje duzine niza */
printf("Unesite duzinu niza: ");scanf("%d",&n);
if(n<=0)break;
/* Stvaranje niza */
a=malloc(n*sizeof(int));
printf("\nA? ");for(i=0;i<n;scanf("%d",&a[i++]));
/* Sortiranje niza */
for (i=0;i<n-1;i++)
for(j=i+1;j<n;j++)
if(a[i]>a[j]){b=a[i];a[i]=a[j];a[j]=b;}
/* Unosnje trazenog broja */
printf("\nUnesite broj: ");scanf("%d",&x);
/* Trazenje prvog pojavljivanja u nizu */
for(j=0;j<n;j++)
if(a[j]==x){
p1=j;break;
}
/* Trazenje poslednjeg pojavljivanja u nizu */
for(i=n;i>0;i--)
if(a[i]==x){
p2=i;
break;
}
/* Ispisivanje rezultata */
printf("\n\n");
if(p1!=-1)
printf("Prvo pojavljivanje na mestu br. %d\n",p1);
if(p2!=-1)
printf("Poslednje pojavljivanje na mestu br. %d\n",p2);
if(p1==-1)
printf("Broj se ne pojavljuje u nizu\n");
printf("\n\n");
free(a);
}
}
#include <stdio.h>
#include <stdlib.h>
main(){
int *a,i,j,n,b,x;
while(1){
int p1=-1,p2=-1;
/* Odredivanje duzine niza */
printf("Unesite duzinu niza: ");scanf("%d",&n);
if(n<=0)break;
/* Stvaranje niza */
a=malloc(n*sizeof(int));
printf("\nA? ");for(i=0;i<n;scanf("%d",&a[i++]));
/* Sortiranje niza */
for (i=0;i<n-1;i++)
for(j=i+1;j<n;j++)
if(a[i]>a[j]){b=a[i];a[i]=a[j];a[j]=b;}
/* Unosnje trazenog broja */
printf("\nUnesite broj: ");scanf("%d",&x);
/* Trazenje prvog pojavljivanja u nizu */
for(j=0;j<n;j++)
if(a[j]==x){
p1=j;break;
}
/* Trazenje poslednjeg pojavljivanja u nizu */
for(i=n;i>0;i--)
if(a[i]==x){
p2=i;
break;
}
/* Ispisivanje rezultata */
printf("\n\n");
if(p1!=-1)
printf("Prvo pojavljivanje na mestu br. %d\n",p1);
if(p2!=-1)
printf("Poslednje pojavljivanje na mestu br. %d\n",p2);
if(p1==-1)
printf("Broj se ne pojavljuje u nizu\n");
printf("\n\n");
free(a);
}
}
Šta mi ovde kod koda ne valja?
Konkretno mislim na nalaženje prvog i poslednjeg broja u nizu.
Ne ispisuje mi tačne vrednosti.
Kad se traženi broj pojavljuje prvi i poslednji put u nizu, onda su vrednosti ok. Kad se nalazi na drugim mestima onda ne ispisuje tačne vrednosti.
Nešto nisam otkucao kako valja.
Hvala
Potpis
77 77 77 2E 65 73 6E 69 70 73 2E 63 6F 6D









