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

maža problema su masyvo rodymu


sheat0n

Ši tema yra neaktyvi. Paskutinis pranešimas šioje temoje buvo prieš 3412 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

#include <iostream>
#include <fstream>
#include <cmath>
using namespace std;
const char CDfv[] = "duom.txt";
const char CRfv[] = "ats.txt";
const int Max = 50;
void Skaitymas(int A[], int &k, int &n);
void Rodymas(int A[], int k, int n);

int main(){
    int mas[Max], k, n;
    Skaitymas(mas, k, n);
    Rodymas(mas, k, n);
}

void Skaitymas(int A[], int &k, int &n){
    ifstream fd (CDfv);
    fd >> k >> n;
    for(int i = 0; i < k; i++){
        for(int j = 0; j < n; j++){
            fd >> A[j];
        }
    }
}
void Rodymas(int A[], int k, int n){
    for(int i = 0; i < k; i++){
        for(int j = 0; j < n; j++){
            cout << A[j] << " ";
        }
        cout << endl;
    }
}

Vietoj tokio pateikimo:http://prntscr.com/5kfoor

Rodo štai tokį: http://prntscr.com/5kfnmn

 

Ką blogai padariau?

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

Šioj vietoj yra tavo klaida. Jis nuskaito duomenis, bet kaskart nuskaitydamas perrašo praeitus duomenis.
A[0] buvo 4, paskui tapo 8, o paskutini karta nuskaitant tapo 5.

    for(int i = 0; i < k; i++){
        for(int j = 0; j < n; j++){
            fd >> A[j];
        }
    }

Šiai problemai išspręsti reikėtų pakeisti į

    for(int i = 0; i < k*n; i++){
            fd >> A[j];
    }

Ir čia, vietoj

    for(int i = 0; i < k; i++){
        for(int j = 0; j < n; j++){
            cout << A[j] << " ";
        }
        cout << endl;
    }

Į

    for(int i = 0; i < k*n; i++){
        cout << A[j] << " ";
        if(i%k==0){
           cout << endl;
        }
    }
  • Teigiamai 1
Nuoroda į komentarą
Dalintis per kitą puslapį

Šioj vietoj yra tavo klaida. Jis nuskaito duomenis, bet kaskart nuskaitydamas perrašo praeitus duomenis.

A[0] buvo 4, paskui tapo 8, o paskutini karta nuskaitant tapo 5.

for(int i = 0; i < k; i++){        for(int j = 0; j < n; j++){            fd >> A[j];        }    }
Šiai problemai išspręsti reikėtų pakeisti į
for(int i = 0; i < k*n; i++){            fd >> A[j];    }
Ir čia, vietoj
for(int i = 0; i < k; i++){        for(int j = 0; j < n; j++){            cout << A[j] << " ";        }        cout << endl;    }
Į
for(int i = 0; i < k*n; i++){        cout << A[j] << " ";        if(i%k==0){           cout << endl;        }    }
Dėkui.
Nuoroda į komentarą
Dalintis per kitą puslapį

Ši tema yra neaktyvi. Paskutinis pranešimas šioje temoje buvo prieš 3412 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!

Svečias
Ši tema yra užrakinta.
  • Šiame puslapyje naršo:   0 nariai

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

Skelbimai


×
×
  • Sukurti naują...