Pereiti prie turinio

C++ masyvo elementų suma


Rekomenduojami pranešimai

int i = 0;
suma = 0;
for ( i = 0; i < masyvo_ilgis; i++ ) 
{
 if ( masyvas[i] > u && masyvas[i] < v )
 {
   suma += masyvas[i];
 }
}

 

Man rods ten u ir v yra intervalo reziai... Tuomet butu

 

int i = 0;
suma = 0;
if (u >= 0 && v < masyvo_ilgis)
{
  for ( i = u; i <= v; i++ ) 
  {
     suma += masyvas[i];
  }
}

 

Paredaguota: aj, gal vistik as blogai perskaiciau :P

Redagavo dEVooX
Nuoroda į pranešimą
Dalintis kituose puslapiuose

u ir v intervalo rėžiai, tačiau, kaip juos perduoti į funkciją? Nes jei taip parašai u ir v meta klaidą: 'u' : undeclared identifier ir 'v' : undeclared identifier.

 

nes u ir v aš įvedu į ekraną, kiekvieną kartą galima įvesti kitokį skaičių..

Redagavo liksas
Nuoroda į pranešimą
Dalintis kituose puslapiuose

O nepatenkančių į intervalą skaičių vidurkį apskaičiuoti taip:

 

 

double Vidurkis(double M[], int n, double u, double v)
{ 
double k = 0, s = 0;
double vid; 
for(int i = 0; i < n; i++)
{
	if (M[i] <= u && M[i] >= v) 
	{
		k = k + 1;
		s = s + M[i];
	}
	if(k > 0) 	
		vid = (double) s / k;
	else		
		vid = 0.0;
}
return vid;
}

 

 

?

Nuoroda į pranešimą
Dalintis kituose puslapiuose

Tai aš ir aprašęs kaip double, viską skaičiuoja normaliai.

 

Tik dabar su nepatenkančiais į rėžius skaičius neveikia..

 

 

ką aš čia suvėliau:

 

double Vidurkis(double M[], int n, double u, double v) 
{  
       double k = 0, s = 0; 
       double vid;  
       for(int i = 0; i < n; i++) 
       { 
               if (M[i] <= u && M[i] >= v)  
               { 
                       k = k + 1; 
                       s = s + M[i]; 
               } 
               if(k > 0)        
                       vid = (double) s / k; 
               else             
                       vid = 0.0; 
       } 
       return vid; 
}


 

?

Nuoroda į pranešimą
Dalintis kituose puslapiuose

Tai aš ir aprašęs kaip double, viską skaičiuoja normaliai.

 

Tik dabar su nepatenkančiais į rėžius skaičius neveikia..

 

 

ką aš čia suvėliau:

 

double Vidurkis(double M[], int n, double u, double v) 
{  
       double k = 0, s = 0; 
       double vid;  
       for(int i = 0; i < n; i++) 
       { 
               if (M[i] <= u && M[i] >= v)  
               { 
                       k = k + 1; 
                       s = s + M[i]; 
               } 
               if(k > 0)        
                       vid = (double) s / k; 
               else             
                       vid = 0.0; 
       } 
       return vid; 
}


 

?

 

Mazi pataisymai:

1. Pakeisk i double vid = 0.0;

2. Ismesk else vid = 0.0;

 

cia tam, kad jeigu situacija tokia, jog n <= 0, tuomet funkcija grazins labai negrazia reiksme :)

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.

  • Prisijunk prie bendruomenės dabar!

    Uždarbis.lt nariai domisi verslo, IT ir asmeninio tobulėjimo temomis, kartu sprendžia problemas, dalinasi žiniomis ir idėjomis, sutinka būsimus verslo partnerius ir dalyvauja gyvuose susitikimuose.

    Užsiregistruok dabar ir galėsi:

    ✔️ Dalyvauti diskusijose;

    ✔️ Kurti naujas temas;

    ✔️ Rašyti atsakymus;

    ✔️ Vertinti kitų žmonių pranešimus;

    ✔️ Susisiekti su bet kuriuo nariu asmeniškai;

    ✔️ Naudotis tamsia dizaino versija;

    ir dar daugiau.

    Registracija trunka ~30 sek. ir yra visiškai nemokama.

  • Naujausios temos

  • Karštos temos

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