Peršokti į turinį
  • ŽAIDIMAI
  • , ŽAIDIMAI
  • ŽAIDIMAI

C++ uždavinys


elmxd

Ši tema yra neaktyvi. Paskutinis pranešimas šioje temoje buvo prieš 853 dienas (-ų). Patariame sukurti naują temą, o ne rašyti naują pranešimą.

Už neaktyvių temų prikėlimą galite sulaukti įspėjimo ir pranešimo pašalinimo!

Recommended Posts

Sveiki, reiktų pagalbos su uždaviniu iš C++. Reikia rasti didžiausią sekos narį, kuris nėra sveiko skaičiaus kvadratas. Jei tokio skaičiaus nėra, išvesti "Nėra". Gal kas galėtų papildyti sprendimą?

image.thumb.png.5735a8ea71ad5b11d2addcf6c48167f8.png

#include <iostream>
#include <fstream>
using namespace std;
int narys(int n, int a[]);
int main()
{
int n, a[10], max;
cin>>n;
 
for (int i = 0; i<n; i++){
cin>>a[i];
}
 
max = narys (n, a);
 
cout<<max<<endl;
 
}
 
int narys(int n, int a[]){
int max = -1000009;
for (int i=0; i<n; i++){
if (a[i] > max)
max = a[i];
return max;
}
Redaguota , nario elmxd
Nuoroda į komentarą
Dalintis per kitą puslapį

#include <cmath>

int calculateData(int data[], int dataSize) {
    int max = -1;
    for (int i = 0; i < dataSize; i++) {
        double result = sqrt(data[i]);
        if (result != (int)result && data[i] > max) {
            max = data[i];
        }
    }
    return max;
}

Štai mano sprendimui funkcija, kaip aš spręsčiau. Tikriausiai yra būdas, kaip nepanaudojus šaknies funkcijos išspręst šitą uždavinį, bet šitas sprendimas irgi puikiai tinka. Šita funkcija grąžina reikšmę -1, jeigu skaičius nebuvo surastas (grąžinam -1 nes minusinių rezultatų grąžinti neįmanoma, nes matematinė šaknis netraukia minusinių skaičių).

BxFSnIN.png

Vertėtų taip pat paminėti, kad jeigu į šaknies funkciją C/C++ įsistatai minusinę reikšmę, C/C++ grąžina į kintamajį NaN (angl. Not An Integer) reikšmę, kurią palyginus su bet kokiu skaičiumi nelygybės ženklais, tau išmes false reikšmę, tai yra viena iš priežasčių, dėl ko netikrinu skaičiaus ar jis minusinis masyve prieš kodą ciklo viduje.

 

Redaguota , nario Dovias
Nuoroda į komentarą
Dalintis per kitą puslapį

2021-11-25 01:01, Dovias parašė:
#include <cmath>

int calculateData(int data[], int dataSize) {
    int max = -1;
    for (int i = 0; i < dataSize; i++) {
        double result = sqrt(data[i]);
        if (result != (int)result && data[i] > max) {
            max = data[i];
        }
    }
    return max;
}

Štai mano sprendimui funkcija, kaip aš spręsčiau. Tikriausiai yra būdas, kaip nepanaudojus šaknies funkcijos išspręst šitą uždavinį, bet šitas sprendimas irgi puikiai tinka. Šita funkcija grąžina reikšmę -1, jeigu skaičius nebuvo surastas (grąžinam -1 nes minusinių rezultatų grąžinti neįmanoma, nes matematinė šaknis netraukia minusinių skaičių).

BxFSnIN.png

Vertėtų taip pat paminėti, kad jeigu į šaknies funkciją C/C++ įsistatai minusinę reikšmę, C/C++ grąžina į kintamajį NaN (angl. Not An Integer) reikšmę, kurią palyginus su bet kokiu skaičiumi nelygybės ženklais, tau išmes false reikšmę, tai yra viena iš priežasčių, dėl ko netikrinu skaičiaus ar jis minusinis masyve prieš kodą ciklo viduje.

 

Gal galėtum patarti kaip padaryti, kad nesuradus skaičiaus funkcija grąžintų "Ne", o ne -1?

Nuoroda į komentarą
Dalintis per kitą puslapį

prieš 3 valandas(-ų), elmxd parašė:

Gal galėtum patarti kaip padaryti, kad nesuradus skaičiaus funkcija grąžintų "Ne", o ne -1?

Tai pridėk vieną if statement.

if(max==-1){
  return "Ne";
}
else{
  return "Taip"
  }

tik reiktų paminėti, kad šitą patikrinimą reikia daryti ne funkcijoje, o pačioje programoje arba kitoje funkcijoje. Jei darysi programoje tai gali vietuj return iškarto spausdinti į konsolę

Redaguota , nario Th3Pijus
Nuoroda į komentarą
Dalintis per kitą puslapį

Ši tema yra neaktyvi. Paskutinis pranešimas šioje temoje buvo prieš 853 dienas (-ų). Patariame sukurti naują temą, o ne rašyti naują pranešimą.

Už neaktyvių temų prikėlimą galite sulaukti įspėjimo ir pranešimo pašalinimo!

Prisijungti prie diskusijos

Palikti atsakymą galite iš karto, o užsiregistruoti vėliau. Jeigu jau turite paskyrą mūsų forume, Prisijunkite.

Svečias
Atsakyti šioje temoje...

×   Įklijuotas tekstas turi teksto formatavimą.   Pašalinti teksto formatavimą

  Galimi tik 75 veidukai.

×   Nuoroda buvo automatiškai įterpta.   Įterpti nuorodą paprastai

×   Jūsų ankstesnis pranešimas buvo atkurtas.   Išvalyti redaktorių

×   Jūs negalite įkelti nuotraukas tiesiogiai.Įkelkite arba įdėkite nuotraukas iš URL.

  • Šiame puslapyje naršo:   0 nariai

    • Nėra registruotų narių peržiūrinčių šį forumą.

Skelbimai


×
×
  • Sukurti naują...