Czy powie mi ktoś gdzie mam tu błąd, wyskakuje mi dziwny i duży wynik

0

Polecenie - Napisz program, który pobierze z pliku dane.txt trzy liczby całkowite (plik dane.txt tworzymy ręcznie z poziomu systemu operacyjnego) wyliczy pole trapezu i wynik zapisze w pliku pole.txt.

Tu mój kod:

#include <iostream>
#include <fstream>
#include <math.h>
#include <cstdlib>
#include <string>
#include <sstream>
#include <cmath>

using namespace std;

int main()
{
    int Pt = 0;
    string mn, mn2, mn3;
    ifstream odczyt("dane.txt");
    ofstream zapis("pole.txt");

    odczyt >> mn >> mn2 >> mn3;
    int a, b, h;
    istringstream(mn) >> a;
    istringstream(mn2) >> b;
    istringstream(mn3) >> h;

    odczyt.close();
    {
        Pt = (a + b) * h / 2;
        zapis << Pt;
        cout << Pt << endl;
    }
    zapis.close();

    return 0;
}
1

U mnie działa. https://wandbox.org/permlink/oewBIKGVICCRhiXD

Wczytywanie stringów a potem konwersja do intów kompletnie zbędna ale formalnie poprawna.

0

To może ja coś mam z programem ale dziękuje za sprawdzenie i życzę Ci miłego dnia

3
?????? napisał(a):

Tu mój kod:

Nie wiem, czy na pewno chcesz liczyć na intach. Zwłaszcza dzielenie całkowitoliczbowe nie jest tym, czego oczekujesz. Moze double?

0

To pewnie z powodu tego co masz w pliku dane.txt... Pokaż.

1 użytkowników online, w tym zalogowanych: 0, gości: 1