Witamy na forum PC Format Zapraszamy do REJESTRACJI


Użytkownicy przeglądający ten wątek: 1 gości

[C++] NWD wielu liczb zaczytanych z zewnętrznego pliku

#1
[C++] NWD wielu liczb zaczytanych z zewnętrznego pliku
Witam!
Od paru dni męczę się z tym zadaniem i nie mam na nie pomysłu. Potrzebuję wczytać do programu liczby z pliku tekstowego (jest ich ponad 500) i muszę obliczyć NWD (największy wspólny dzielnik) wszystkich tych liczb. Polegając na Euklidesie obliczam NWD pierwszych dwóch liczb i potem to podstawiam pod 1 kolejnego NWD i potem porównuje to z 3 liczbą i tak z każdym przypadkiem... Ale nie wychodzi mi to, wydaje mi się ze pomysł nie jest dobry, ma ktoś jakiś?
Kod:
#include <iostream>
#include <cstdlib>
#include <fstream>
using namespace std;
const  int n=600;
int main()
{
    int tab[n],a,b,i;
   ifstream wejscie("dane1.txt");
   if(!wejscie)
   {
   cout<<"nie mozna otworzyc  pliku";
   getchar();
   return 1;
}

while(!wejscie.eof())
  {
  
  wejscie>>tab[n];
  cout<<tab[n]<<endl;

}
wejscie.close();
a=tab[0];
b=tab[1];
for(i=0;i<n;i++)
{
if(a>b) a=a-b;
else b=b-a;
b=tab[i+1];
}
cout<<"nwd="<<a<<endl;  

  
  
    system("PAUSE");

    return 0;
}
 System operacyjny: windows_eight Przeglądarka: firefox
#2
RE: [C++] NWD wielu liczb zaczytanych z zewnętrznego pliku
Witam, źle wczytujesz dane (cały czas nadpisujesz pierwszy element za tablicą). Tak naprawdę można zrobić to bez użycia tablicy - wyznacz NWD dwóch pierwszych liczb, a później wczytuj kolejną liczbę i wyznaczaj nowy NWD z tej liczby i poprzedniego NWD. I lepiej napisać funkcję, która by wyznaczała NWD:
Kod:
unsigned int nwd(unsigned int a, unsigned int b)
{
    return b == 0 ? a : nwd(b, a % b);
}
 System operacyjny: linux Przeglądarka: firefox
#3
RE: [C++] NWD wielu liczb zaczytanych z zewnętrznego pliku
W taki sposob... Dzieki wielkie, jednak bazowac moge na tej samej petli wczytujacej? Czy trzeba to wczytywac innym sposobem skoro jedna po drugiej beda wczytywane?

Zrobiłem tym sposobem i wyświetla mi dużo większą liczbe w nwdKwaśny
 System operacyjny: linux Przeglądarka: safari
#4
RE: [C++] NWD wielu liczb zaczytanych z zewnętrznego pliku
Możesz, ale musisz ją poprawić, by poprawnie wczytywała liczby.
Spoiler
Kod:
#include <iostream>
#include <fstream>
using namespace std;

unsigned int nwd(unsigned int a, unsigned int b)
{
    return b == 0 ? a : nwd(b, a % b);
}

int main()
{
    ifstream liczby("data");
    int a, b;
    if (!liczby || !(liczby >> a))
        return -1;
    liczby >> b;
    if (!liczby)
    {
        cout << "NWD wynosi " << a << endl;
        return 0;
    }
    a = nwd(a, b);
    while (liczby >> b)
        a = nwd(a, b);
    cout << "NWD wynosi " << a << endl;
    return 0;
}
 System operacyjny: linux Przeglądarka: firefox
#5
RE: [C++] NWD wielu liczb zaczytanych z zewnętrznego pliku
Dzięki wielkie Jupi
 System operacyjny: windows_eight Przeglądarka: firefox
Programy: Polecane / Nowe / Inne



Użytkownicy forum szukali:
c++ nwd liczb w tablicyjak wyznaczyć nwd wielu liczb w C++

Podobne wątki ([C++] NWD wielu liczb zaczytanych z zewnętrznego pliku)
Wątek: Autor Odpowiedzi: Wyświetleń: Ostatni post
Question Wyznaczanie maksimum spośród 5 liczb - schemat blokowy mistrz18 5 7973 05.10.2017, 19:49
Ostatni post: broda99
  Java- wypisanie liczb, które nie są podane w tablicy , wypisanie liczb z tablicy all? ccomp 10 13487 16.07.2017, 20:10
Ostatni post: ccomp
  [C++]Problem z wyszukiwaniem liczb w tekście i szukaniem słowa w słowie Niyabi 1 6053 15.01.2017, 15:53
Ostatni post: Szachista

Skocz do:


Wybrane wątki ([C++] NWD wielu liczb zaczytanych z zewnętrznego pliku)
Wątek: Autor Odpowiedzi: Wyświetleń: Ostatni post
  Wyszukiwarka w spawnerze nie reaguje na polskie znaki kazik666 0 7347 16.05.2018 12:04
Ostatni post: kazik666
  BASH symulator silnika dawswi1 3 7766 13.05.2018 10:43
Ostatni post: Szachista
  Autohotkey automatyczny zapis TheProgson 0 7382 07.05.2018 21:27
Ostatni post: TheProgson
  VBA Pobieranie wybranych plików z danymi julietta03 1 7593 04.05.2018 08:25
Ostatni post: broda99
  [VBA] Przenoszenie danych między formularzami Pioro 4 7967 23.04.2018 11:48
Ostatni post: broda99
  Skrypt, który szuka i zamienia armen10 2 7787 23.04.2018 10:04
Ostatni post: armen10
  Liniowa regresja w Pythonie a budowanie modelu Trojan3000 2 7905 16.04.2018 13:26
Ostatni post: Trojan3000
  Początki z bashem - jak napisać skrypty: wysłanie maila i kalkulator? Kristov81 4 11722 21.03.2018 18:32
Ostatni post: Szachista
Ściana Zadanie cmd.... Yanke$ 2 8920 16.03.2018 17:20
Ostatni post: FireBytes
  Poszukuj kogoś do pomocy FireBytes 0 7785 16.03.2018 16:58
Ostatni post: FireBytes
  Program liczący liczby pierwsze Mersenne'a raistin 2 8003 12.03.2018 12:51
Ostatni post: Szachista
  Wykres Funkcji w Javie wanhelsing 4 8840 17.02.2018 22:27
Ostatni post: wanhelsing
  [SQL]procedura zliczania czasu CTRL85 0 8102 17.02.2018 12:58
Ostatni post: CTRL85
  [VBA Excel] Zaokrąglanie liczby w górę Pioro 2 9282 13.02.2018 21:25
Ostatni post: Pioro
  Sumowanie czasu excel. Cixi 7 8560 13.02.2018 11:52
Ostatni post: Cixi