• Najnowsze pytania
  • Bez odpowiedzi
  • Zadaj pytanie
  • Kategorie
  • Tagi
  • Zdobyte punkty
  • Ekipa ninja
  • IRC
  • FAQ
  • Regulamin
  • Książki warte uwagi

Program ma pobrać z pliku liczby i wpisać do następnego największą z tych liczb.

VPS Starter Arubacloud
+1 głos
314 wizyt
pytanie zadane 22 stycznia 2021 w C i C++ przez BedrisK Użytkownik (600 p.)

Algorytm ma zapisać w największą liczbę z 1 pliku do 2 pliku txt, ale tego nie robi. Tylko wypisuje liczby w kompilatorze.

#include <iostream>
#include <fstream>

using namespace std;

int main()
{
    fstream plik;
    plik.open("liczby.txt", ios::in);
    int d[1000], a=0, max;
    max=d[0];

    if(plik.good()==false)
    {
          cout << "Plik nie jest dostepny!";
    }

    else
    {
          while(!plik.eof())
          {
                    plik >> d[a];
                    a++;
          }
    }

    plik.close();

    for(int i=1; i<1000; i++)
    {
              if(max<d[i])
              {
                        max=d[i];
              }
    }

    for(int j=0; j<a-1; j++)
    {
              cout << d[j] << endl;
    }

    plik.open("wynik5.txt", ios::out);

    for(int j=0; j<a-1; j++)
    {
              cout << d[j] << endl;
    }

    plik.close();

    return 0;
}

 

komentarz 22 stycznia 2021 przez NewEraOfPeace Gaduła (4,790 p.)
tak, bo wpisujesz wszystkie
komentarz 22 stycznia 2021 przez BedrisK Użytkownik (600 p.)
a jak zmienić aby wpisywał tylko jedną liczbę?
komentarz 22 stycznia 2021 przez BedrisK Użytkownik (600 p.)
potrzebuje pomocy
komentarz 23 stycznia 2021 przez VBService Ekspert (251,210 p.)
cout << d[j] << endl;

na

plik << max;

 

komentarz 23 stycznia 2021 przez BedrisK Użytkownik (600 p.)
niestety, ale dalej jest błąd

1 odpowiedź

0 głosów
odpowiedź 24 stycznia 2021 przez VBService Ekspert (251,210 p.)
wybrane 29 stycznia 2021 przez BedrisK
 
Najlepsza

Przyczyną błędu był ten zapis

int d[1000],

gdy w pliku było mniej cyfr niż 1000  wink

int d[1000] = {0}

tablica jest inicjowana i wszystkim 1000-cu wierszy (indeksom) przypisana zostaje wartość zero "0"

Moja propozycja:
liczby.txt

453
79
277
43
109
725
643
274
944
653
620
714
343
505
205
535
53
772
130
760
816
608
190
841
60
463
716
72
542
624
733
502
707
579
604
519
154
691
845
886
612
685
364
862
123
652
528
637
586
758
429
353
518
92
563
592
221
522
872
867
339
578
717
891
80
661
65
542
76
809
45
442
399
788
765
849
167
185
195
527
768
490
786
816
74
275
857
959
603
853
46
668
347
463
233
165
356
11
306
637
#include <iostream>
#include <fstream>
 
using namespace std;
 
int main()
{
    fstream plik;
    int d[1000]={0}, a=0, max=0;

    plik.open("liczby.txt", ios::in); 
    if (plik.good() == false)
    {
        cout << "Plik nie jest dostepny!";
        exit(EXIT_FAILURE);
    }

    while (!plik.eof())
    {
        plik >> d[a];
        if (max<d[a]) max=d[a];
        a++;
    }
    plik.close();

    for (int i=0; i<a; ++i)
    {
        cout.width(4); cout << d[i] << " "; // równe kolumny liczb co 4 znaki + spacja ( << " " )
        if ((i+1)%10 == 0) cout << endl; // 10 liczb w jednej linii w cout,
    }
 
    cout << "\nmax = " << max;
 
    plik.open("wynik5.txt", ios::out);
    {
        plik << max << endl;
    }
    plik.close();
 
    return 0;
}

C++ set all array values to {0} ]  [ exit (EXIT_FAILURE) ]
Sterowanie formatem: cout.width() ]

Podobne pytania

0 głosów
1 odpowiedź 185 wizyt
0 głosów
0 odpowiedzi 144 wizyt
pytanie zadane 17 października 2023 w Python przez Jakub005 Początkujący (310 p.)
0 głosów
1 odpowiedź 513 wizyt
pytanie zadane 3 listopada 2020 w C i C++ przez Niepokonana7999 Bywalec (2,250 p.)

92,452 zapytań

141,262 odpowiedzi

319,080 komentarzy

61,854 pasjonatów

Motyw:

Akcja Pajacyk

Pajacyk od wielu lat dożywia dzieci. Pomóż klikając w zielony brzuszek na stronie. Dziękujemy! ♡

Oto polecana książka warta uwagi.
Pełną listę książek znajdziesz tutaj.

Akademia Sekuraka

Akademia Sekuraka 2024 zapewnia dostęp do minimum 15 szkoleń online z bezpieczeństwa IT oraz dostęp także do materiałów z edycji Sekurak Academy z roku 2023!

Przy zakupie możecie skorzystać z kodu: pasja-akademia - użyjcie go w koszyku, a uzyskacie rabat -30% na bilety w wersji "Standard"! Więcej informacji na temat akademii 2024 znajdziecie tutaj. Dziękujemy ekipie Sekuraka za taką fajną zniżkę dla wszystkich Pasjonatów!

Akademia Sekuraka

Niedawno wystartował dodruk tej świetnej, rozchwytywanej książki (około 940 stron). Mamy dla Was kod: pasja (wpiszcie go w koszyku), dzięki któremu otrzymujemy 10% zniżki - dziękujemy zaprzyjaźnionej ekipie Sekuraka za taki bonus dla Pasjonatów! Książka to pierwszy tom z serii o ITsec, który łagodnie wprowadzi w świat bezpieczeństwa IT każdą osobę - warto, polecamy!

...