Pereiti prie turinio

C kalba pasikartojančiu skaičiu masyvas


Rekomenduojami pranešimai

#include <stdio.h>
#include <stdlib.h>

int main()
{
   const int SIZE=15;
   int masyvas[15];
   int pmasyvas[size];
   int i,skt,ski,n,z;
   bool yra;
   n=0;

       printf("Iveskite kiek bus masyvo elementu: \n");
       scanf("%d",&z,"\n");
        for (i=1;i<=z;i++)
       {
       printf("Iveskite %d -aji masyvo elementa: \n",i);
       scanf ("%d",&masyvas[i]);
       }
        for ( i=0; i <= SIZE-1; i++)
       {
       skt=masyvas[i]; ski=i; yra = false;
        for (int j=0; j <= SIZE-1; j++)
       {
           if ((skt == masyvas[j]) && (ski != j))
              yra=true;


       }
           if (yra)
       {
              pmasyvas[n]=masyvas[i];
              n++;
       }
       }
       printf("Pasikartojantis masyvas yra: \n");
       pmasyvas[n]='\0';

      for (i=0;pmasyvas[i] != pmasyvas[n];i++)  {                            
       printf("%d ",pmasyvas[i]);

       }
       printf("\n");

   system("pause");
   return 0;
}

 

Va yra kodas viskas veikia įrašai pasikartojančius skaičius. pvz 2,2,2,2,3,3, atspausdins 2,2,2,2,3,3, o man reikia, kad atspausdintu tik 2,3 kaip pakoreguoti kodą kad veiktų viskas normaliai? nebežinau ką kaip padaryti... padėkit. Dėkui.

Nuoroda į pranešimą
Dalintis kituose puslapiuose

C kalbos nečiupinėjęs, bet klausi labai paprasto dalyko... Tiesiog pasidaryk filtra t.y. atskira masyva kuriame saugotum tik nepasikarojančius elementų reikšmes. Į spausdinimo funkcija paduosi būtent išfiltruotą masyva ir atspauzdins ekrane tai ko nori.

Negi jaunimas šiais laikais jau taip tingi bent truputi galvą pasukti savarankiškai :(

Nuoroda į pranešimą
Dalintis kituose puslapiuose

Tavo "j" ciklas turetu atrodyt sitaip:

 

for (int j=0; j < n; j++)
{
   if (skt == masyvas[j])
       yra=true;
}
if (!yra)
 ....

 

EDIT:

 

dar tiesa sakant pirmi 2 "i" ciklai turetu buti:

 

for (int i=0; i < z; i++)

 

o 3ias "i" ciklas:

 

for (int i=0; i < n; i++)

Redagavo dEVooX
Nuoroda į pranešimą
Dalintis kituose puslapiuose

Tavo "j" ciklas turetu atrodyt sitaip:

 

for (int j=0; j < n; j++)
{
   if (skt == masyvas[j])
       yra=true;
}
if (!yra)
 ....

 

EDIT:

 

dar tiesa sakant pirmi 2 "i" ciklai turetu buti:

 

for (int i=0; i < z; i++)

 

o 3ias "i" ciklas:

 

for (int i=0; i < n; i++)

Dėkui, bet kartais pamėto man čia klaidų kaip pataisau.

Nuoroda į pranešimą
Dalintis kituose puslapiuose

Prisijunkite prie diskusijos

Jūs galite rašyti dabar, o registruotis vėliau. Jeigu turite paskyrą, prisijunkite dabar, kad rašytumėte iš savo paskyros.

Svečias
Parašykite atsakymą...

×   Įdėta kaip raiškusis tekstas.   Atkurti formatavimą

  Only 75 emoji are allowed.

×   Nuorodos turinys įdėtas automatiškai.   Rodyti kaip įprastą nuorodą

×   Jūsų anksčiau įrašytas turinys buvo atkurtas.   Išvalyti redaktorių

×   You cannot paste images directly. Upload or insert images from URL.

Įkraunama...
  • Dabar naršo   0 narių

    Nei vienas registruotas narys šiuo metu nežiūri šio puslapio.

×
×
  • Pasirinkite naujai kuriamo turinio tipą...