Pereiti prie turinio

Rasti antra didziausia nari masyve


Rekomenduojami pranešimai

Sveiki, noriu rasti antra didziausia masyvo nari. Turiu masva

double A[] = {-1; 5.43 7.96; 1.05 -1; -1}

n = 6;

mano kodas

double max = 0.0;
double max2 = 0.0;
    for(int i=0; i<n; i++){
        if(max<A[i]){
           max=A[i];
        }
    }
    for(int i=0; i<n; i++){
        if(max2<A[i] && max2<max){
           max2=A[i];
        }
    }
cout << max2 << endl;

bet rezultatuose meta didziausia nari kodel?

Redagavo mendinskis
Nuoroda į pranešimą
Dalintis kituose puslapiuose

Sveiki, noriu rasti antra didziausia masyvo nari. Turiu masva

double A[] = {-1; 5.43 7.96; 1.05 -1; -1}

n = 6;

mano kodas

double max = 0.0;
double max2 = 0.0;
    for(int i=0; i<n; i++){
        if(max<A[i]){
           max=A[i];
        }
    }
    for(int i=0; i<n; i++){
        if(max2<A[i] && max2<max){
           max2=A[i];
        }
    }
cout << max2 << endl;

bet rezultatuose meta didziausia nari kodel?

 

Manau geriau būtų sukti vieną ciklą.

double[] A = {-1, 5.43, 7.96, 1.05, -1, -1};
	double max = 0;
	double max2 = 0;
	for(int i=0; i<6; i++){
		if(A[i] > max){
			max2 = max;
			max = A[i];
		}else if(A[i] > max2){
			max2 = A[i];
		}
	}

Veikia. Tie nuliai aišku nėra labai gerai, bet jei žinai 100 procentų kad tiks visada, tada gali palikt.

Primityvus ištaisymas galėtų būti:

if(n>1 && A[0]>A[1]){
 max = A[0];
 max2 = A[1];
}else if(n>1 && A[0]<A[1]){
 max = A[1];
 max2 = A[0];
}else if(n) == 1){
 Spausdinti("Antro pagal dydį masyvo elemento nėra");
}else{
 Spausdinti("Masyvas tuščias");
}

Nežinau, nemoku C++, nežinau ar operatoriai tokie patys. :D

Redagavo zyzlyz
Nuoroda į pranešimą
Dalintis kituose puslapiuose

Sveiki, noriu rasti antra didziausia masyvo nari. Turiu masva

double A[] = {-1; 5.43 7.96; 1.05 -1; -1}

n = 6;

mano kodas

double max = 0.0;
double max2 = 0.0;
	for(int i=0; i<n; i++){
		if(max<A[i]){
           max=A[i];
		}
	}
	for(int i=0; i<n; i++){
		if(max2<A[i] && max2<max){
           max2=A[i];
		}
	}
cout << max2 << endl;

bet rezultatuose meta didziausia nari kodel?

 

Tokia problema reiktu sprest debug'inant, einant po viena zingsni ir ziurint kokias reiksmes igyja kintamieji smile.gif

Ir beje, jei masyve visi elementai butu < 0, max reiksme taip ir liktu 0

Nuoroda į pranešimą
Dalintis kituose puslapiuose

Tokia problema reiktu sprest debug'inant, einant po viena zingsni ir ziurint kokias reiksmes igyja kintamieji smile.gif

Ir beje, jei masyve visi elementai butu < 0, max reiksme taip ir liktu 0

Taip, cia jau negerai, ar c++ neturi kazkokiu specifiniu funkciju, kurios nustato min reiksme?

Nuoroda į pranešimą
Dalintis kituose puslapiuose

double A[] = {-1; 5.43 7.96; 1.05 -1; -1};
n=6;

int max1=0,//didziausias 
   max2=0;//antras pagal diduma

for(int i=0;i<n;i++)
{
 if(A[i]>A[max1]) max1=i; 
}
antram cikle 
if((A[i]>A[max2])&&(A[i]!=A[max1])) max2=i
cout<<A[max1]<<" ir "<<A[max2];

Kažkas tokio :), galima ir į vieną ciklą sudėt

Redagavo Paulas
Nuoroda į pranešimą
Dalintis kituose puslapiuose

int max1 = -10000, max2 = -10000;
for(int i=0;i<n;i++) {
    if(A[i] > max1) {
         max2 = max1;
         max1 = A[i];
    }
}

 

kažką tokio bandyk

Keli pastebėjimai. Masyve gali būti -11111111111 elementas.

Ir tikrinime nepagalvojai apie tokį variantą. Kad masyvas tarkim:

7,9,14,2,10

iki paskutinio elemento

max1 = 14

max2 = 9;

 

tikrini, 10 nėra daugiau už 14. bet juk jis didesnis už 9. max2 turėtų būti 10,bet jis liks 9.

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ą...