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.

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