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.

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