Zamjena clanova niza

poruka: 2
|
čitano: 1.140
|
moderatori: XXX-Man, vincimus
1
+/- sve poruke
ravni prikaz
starije poruke gore
14 godina
neaktivan
offline
Zamjena clanova niza

Treba uraditi program koji u mjenja clan niza sa prvim najvecim clanom ,a ako nema veceg mjenja ga sa nulom ,npr. 59361  90600 .

 

U qbasicu sam taj program uradio ovako i on radi

input "N=",n dim a(n) for x=1 to n     input a(x) next x for x=1 to n     s=0     p=0     r=a(x)     v=0     while s<>1 and p<n         p=p+1         if a(x)<a(x+p) then             a(x)=a(x+p)             s=1         end if     wend     if a(x)=r then a(x)=v next x for x=1 to n     print a(x) next x input o end

 

Medjutim kad ga "prevedem" u c++

 

 

#include <iostream>
#include <cstdlib>
using namespace std;

int main() {
   int n ;
   int s=0 ;
   int p,l ;
   cout<<"n=" ;
   cin>>n ;
   int a[n] ;
   cout<<"Unesi brojeve"<<endl;
   for(int x=1;x<=n;x++){
      cin>>a[x];
   }
   for(int i=1;i<=n;i++){
      p=i ;
      l=a[i];
      while(s!=1 && p<n){
         p++ ;
         if(a[i]<a[p]){
            a[i]=a[p];
            s=1 ;
         }
      }
      if(a[i]==l){
      a[i]=0 ;
      }
   }
   cout<<endl;
   for(int u=1;u<=n;u++){
      cout<<a[u]<<endl;
   }
   return 0;
}

 

 

Koje god brojeve da upisem za rezultat dobijem niz nula .

Poruka je uređivana zadnji put uto 14.6.2011 16:58 (qw3rty).
Moj PC  
0 0 hvala 0
17 godina
offline
Zamjena clanova niza

Sada uz ove prepravke radi - greška je bila u alokaciji memorije , u rasponu petlje i u tome što nisi resetirao brojač s na nulu.

 


#include <iostream>
#include <cstdlib>
using namespace std;

int main() {
   int n ;
   int s=0 ;
   int p,l ;
   cout<<"n=" ;
   cin>>n ;
   int* a = new int[n] ;
   cout<<"Unesi brojeve"<<endl;
   for(int x=0;x<n;x++){
      cin>>a[x];
   }
   for(int i=0;i<n;i++){
      s=0;
      p=i ;
      l=a[i];
      while(s!=1 && p<n){
         p++ ;
         if(a[i]<a[p]){
            a[i]=a[p];
            s=1 ;
         }
      }
      if(a[i]==l){
      a[i]=0 ;
      }
   }
   cout<<endl;
   for(int u=0;u<n;u++){
      cout<<a[u]<<endl;
   }
   delete[] a;
   return 0;
}

 
1 0 hvala 1
1
Nova poruka
E-mail:
Lozinka:
 
vrh stranice