eMatematikas Prisijunk Forumas Užduotys Testai Pradžia

C++ masyvai ir funkcijos. Errorai, reikia pagalbo s


Nebaigiau rašyti kodo, nes nesuprantu, ką darau ne taip. Errorai - paryškintuose eilutėse.

#include <iostream>

using namespace std;
const int Cilgis = 100;
int Pinigai[Cilgis];

void bankas(double Pinigai[], double n);

int main()
{
    int Pinigai, n, a, b;

    bankas(Pinigai, n);
    return 0;
}

void bankas(double Pinigai[], double n)
{
    cin  >> n;
}

Pasižiūrėk ko reikalauja kviečiama funkcija ir ką tu jai paduodi.

Na taip reikalauja masyvo, bet ir jį parašius, klaida neišsitaiso.

Parodyk kaip ištaisei kodą.

Neskaitant vienos eilutės - nieko naujo.

#include <iostream>

using namespace std;
const int Cilgis = 100;
int Pinigai[Cilgis];

void bankas(double Pinigai[], double n);

int main()
{
    int Pinigai, n, a, b;

  bankas(Pinigai[], n);
    return 0;
}

void bankas(double Pinigai[], double n)
{
    cin  >> n;
}

Kažko panašaus ir tikėjausi :D . Taigi, turi kintamąjį Pinigai. Koks yra jo tipas? Reikia pasižiūrėti ten kur yra jo deklaracija. O ji yra čia:
int Pinigai, n, a, b;
Kaip matai, kintamasis Pinigai yra int tipo. Tai, kad tu prie kintamojo parašei [], jo tipo iš int į int[] tikrai nepakeičia :D . Ir be to, funkcija reikalauja double[], o ne int[]. Taigi, deklaruok kintamąjį Pinigai kaip double masyvą (double Pinigai[100]) ir veiks. Na ir geriausia pasiskaityk apie masyvus prieš juos naudodamas, nes matosi, kad tau tai nauja :). Beje, kitą kartą kodą įterpk tarp code tag.

Dėkui, viskas pavyko :). Šiandien paieškosiu internete knygų lt/en, nes šiaip trūksta labai medžiagos, iš ko dabar mokausi, tai pagrinde uždaviniai ir labai labai mažai teorijos :).

Vienas smulkus klausimas, jei dar nespėjau užknist :D
Parašius kodą, gaunu atsakymą 1 2 3 4 5 0 0. Būtent šitų nulių neturi būti, taigi kodėl programa kažką dar papildomai "skaičiuoja" ?
Panaši situacija būdavo spausdinant atsakymą į atskirą lapą - gauta reikšmė pasirašo dukart.
#include <iostream>
#include <fstream>
#include <iomanip>

using namespace std;

const char FN[] = "duom.txt";
const int Cilgis = 10;
int M[Cilgis];

void Pildyti(const char FN[], int&n, int M[]);

int main()
{
    int n;
    Pildyti(FN,n,M);
    for(int i = 0; i <= n; i++)
    {
        cout << M[i] <<" ";
    }
    return 0;
}
void Pildyti(const char FN[], int&n, int M[])
{
    n = 0;
    ifstream fd(FN);
    while(!fd.eof())
    {
        fd >> M[n];
        n++;
    }
    fd.close();
}



"duom.txt" duomenys: 1 2 3 4 5

pakeista prieš 11 m

Nu man tavo programa dameta viena nulį, o tai yra dėl to kad nuskaitai viena reikšmę per daug. for turi eiti iki n neitraukiant n į įteraciją. ty. for(int i=0;i<n;i++).

pakeista prieš 11 m

Nori sudalyvauti šioje temoje ir parašyti savo pranešimą? Prisijungti »