Panel użytkownika
Nazwa użytkownika:
Hasło:
Nie masz jeszcze konta?

ładowanie pojedyńczych liczb do tablicy

Ostatnio zmodyfikowano 2015-10-01 08:22
Autor Wiadomość
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.
P-138032
RazzorFlame
» 2015-09-30 16:37:36
Tak dużej liczby normalnie nie wczytasz. Nie lepiej po prostu wczytać std::string?
C/C++
std::string Liczba;
cin >> Liczba;
for( int i = 0; i < Liczba.length(); i++ )
{
    cout << "Liczba [" << i << "] to: " << Liczba[ i ] << endl;
}
P-138033
carlosmay
» 2015-09-30 18:03:37
Możesz użyć
cin.get()

np.
C/C++
char tab[ 100 ];
char ch;
int i = 0;

cin.get( ch ); // wpisujesz taka liczbę jak sobie chcesz

while( ch = !'\n' ) {
    tab[ i++ ] = ch;
    cin.get( ch ); // pobiera kolejny znak z wejścia
}
tab[ i ] = '\0'; // znak zera na koniec ciągu znaków

// jeśli ciąg jest dłuższy niż tablica wczytujesz ile można
// ostatni pole tablicy ustawiasz znakiem zerowym '\0'

for( i = 0; tab[ i ] = !'\0'; i++ ) // wypisz ciąg znaków
     cout << tab[ i ];

cout << endl;
P-138034
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.
P-138035
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.
P-138047
Lora
» 2015-09-30 21:27:38
C/C++
#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.
P-138049
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.
P-138054
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)
P-138055
« 1 »
  Strona 1 z 1