ładowanie pojedyńczych liczb do tablicy
Ostatnio zmodyfikowano 2015-10-01 08:22
Asahel Temat założony przez niniejszego użytkownika |
ładowanie pojedyńczych liczb do tablicy » 2015-09-30 16:23:31 Weźmy tablicę. Na wejściu podajemy jakaś DUŻĄ liczbę(więcej niż 24 znaki). Jak kolejnym szufladkom tablicy przepisywać kolejne liczby? np: weźmy tablicę text[100], liczbę 1234567891011121314151617181920 i taxt[0]=1,text[1]=2. |
|
RazzorFlame |
» 2015-09-30 16:37:36 Tak dużej liczby normalnie nie wczytasz. Nie lepiej po prostu wczytać std::string? std::string Liczba; cin >> Liczba; for( int i = 0; i < Liczba.length(); i++ ) { cout << "Liczba [" << i << "] to: " << Liczba[ i ] << endl; }
|
|
carlosmay |
» 2015-09-30 18:03:37 Możesz użyć cin.get() np. char tab[ 100 ]; char ch; int i = 0;
cin.get( ch );
while( ch = !'\n' ) { tab[ i++ ] = ch; cin.get( ch ); } tab[ i ] = '\0';
for( i = 0; tab[ i ] = !'\0'; i++ ) cout << tab[ i ];
cout << endl;
|
|
michal11 |
» 2015-09-30 18:15:21 Dodam tylko, że nic nie stoi na przeszkodzie żeby przekonwertować sobie stringa na tablicę intów bądź innych zmiennych liczbowych. |
|
Asahel Temat założony przez niniejszego użytkownika |
» 2015-09-30 20:52:53 Jak to zrobić? Dodam, że piszę program, którego zadaniem jest dodawanie bardzo dużych liczb. Mam też pytanie. Nie da się od razu zapisać danych do tablicy tak aby każda jedna liczba odpowiadała dokładnie jednemu miejscu w tablicy. |
|
Lora |
» 2015-09-30 21:27:38 #include <iostream> #include <cstdlib> #include <string> #include <vector>
int main() { std::string liczba; std::cin >> liczba; std::vector < int > tab; for( int i = 0; i < liczba.size(); ++i ) { tab.push_back( liczba[ i ] - '0' ); } for( int i = 0; i < tab.size(); ++i ) { std::cout << tab[ i ]; } std::cout << std::endl; return 0; }
Tylko przydałoby się jeszcze sprawdzać poprawność podanych danych. I jeśli chcesz obsługiwać też liczby ujemne to musisz sprawdzać czy pierwszy znak nie jest minusem. |
|
michal11 |
» 2015-09-30 23:11:27 Nie da się od razu zapisać danych do tablicy tak aby każda jedna liczba odpowiadała dokładnie jednemu miejscu w tablicy. |
Bezpośrednio, nie. |
|
mateczek |
» 2015-10-01 08:22:56 możesz spróbować korzystać z typów danych np __int128_t aby trzymać wielkie liczby !!! http://www.boost.org/doc/libs/1_57_0/libs/multiprecision/doc/html/boost_multiprecision/tut/ints/cpp_int.html
Pytanie czy piszesz program, który ma korzystać z wielkich liczb?? Czy implementujesz obsługę wielkich liczb?? Jeśli to pierwsze to możesz skorzystać z gotowych klas boost!!! Jeśli drugie to musisz się męczyć :P alie i tak dobrym pomysłem było by napisanie klasy która jako konstruktor przyjmie napis;
mojeDlugieInt liczba(const string &napis)
|
|
« 1 » |