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

Pomoc w połączeniu dwóch kodów (stworzenie funkcji)

Object Storage Arubacloud
0 głosów
205 wizyt
pytanie zadane 11 czerwca 2016 w C i C++ przez VitGryfny Użytkownik (620 p.)

Witam,

Kod krótszy dzieli liczbe np. 9 cyfrowa na trzy trojki. Na przyklad 845643457 to:

trojka1=845

trojka2=643

trojka3=457

Chcialbym z dłuższego kodu uczynic funkcje która każdą powyższą trójkę(1,2 oraz 3) wstawi do zmiennej typu string o nazwie liczbastr. Wczesniej rzecz jasna nalezy zamienic kazda trojke na stringa a planuje to zrobic w nastepujacy sposob:

int a = 10;
char *intStr = itoa(a);
string str = string(intStr);

A oto kody:

Kod krotki:

#include <iostream>
#include <iomanip>
using namespace std;

int main()
{
    int liczba;
    long double wynik;
    int trojka1;
    int trojka2;
    int trojka3;

    cout << "Twoja liczba: " << endl;
    cin >> liczba;

    trojka1 = liczba/1000000;
    cout <<"trojka 1 " << trojka1 << endl;
    wynik = liczba - (trojka1*1000000);
    trojka2 = wynik/1000;
    cout <<"trojka 2 " << trojka2 << endl;
    trojka3 = liczba-(trojka1*1000000+trojka2*1000);
    cout <<"trojka 3 " << trojka3 << endl;

    return 0;
}

Oraz kod dlugi (z niego stworzyc funckje ktorych argumentem beda trojki):

#include <iostream>
#include <stdlib.h>
using namespace std;

int main()
{
string ones[] = { "","jeden","dwa","trzy","cztery","piec","szesc","siedem","osiem","dziewiec","dziesiec"};
    string tees[] = {"jedenascie","dwanascie","trzynascie","czternascie","pietnascie","szesnascie","siedemnascie","osiemnascie","dziewietnascie"};
    string tens[] = { "","dwadziescia","trzydziesci","czterdziesci","piecdziesiat","szescdziesiat","siedemdziesiat","osiemdziesiat","dziewiecdziesiat"};
    string hunds[] = {"","sto","dwiescie","trzysta","czterysta","piecset","szescset","siedemset","osiemset","dziewiecset"};

    string liczbastr;
    cout << "wprowadz liczbe 3 cyfr" << endl;
    cin >> liczbastr;
    int liczba1;
    int liczba2;
    int liczba3;
    int wynik;

    int liczba = atoi(liczbastr.c_str());
    cout << "***** liczba " << liczba << endl;
    char test1;
    char test2;
     liczba1 = liczba/100;
    cout << "to liczba1 " << liczba1 << endl;
    wynik = liczba - (liczba1*100);
    liczba2 = wynik/10;
    cout << "to liczba2 " << liczba2 << endl;
    liczba3 = liczba-(liczba1*100+liczba2*10);
    cout << "to liczba3 " << liczba3 << endl;

    if (liczba2==0)
    {
            if (liczba2==1 && liczba3!=0)
            {
                cout << hunds[liczba1] <<" "<< tees[liczba3-1]<< endl;
            }
            else
            {
                cout << hunds[liczba1] <<" "<< tens[liczba2]<< " " << ones[liczba3] << endl;
            }
    }
    else
    {
        if (liczba2==1 && liczba3!=0)
            {
                cout << hunds[liczba1] <<" "<< tees[liczba3-1]<< endl;
            }
            else
            {
               cout << hunds[liczba1] <<" "<< tens[liczba2-1]<< " " << ones[liczba3] <<endl;
            }
    }
    return 0;
}

 

1 odpowiedź

0 głosów
odpowiedź 12 czerwca 2016 przez MetRiko Nałogowiec (37,110 p.)

Trochę mi się nudziło xD

#include <iostream>
#include <sstream>

using namespace std;

string Int2Str(int a)
{
    stringstream ss;
    ss<<a; return ss.str();
}

string GetFullString(int a, int b, int c)
{
    return Int2Str(a)+Int2Str(b)+Int2Str(c);
}

int main()
{
    int trojka1, trojka2, trojka3;
    string liczbastr=GetFullString(trojka1,trojka2,trojka3);
    return 0;
}

 

komentarz 12 czerwca 2016 przez VitGryfny Użytkownik (620 p.)
Jak sądze te instrukcje mają połączyć to co napisałem ja.. jednak nie jestem na tyle ogarnięty aby wiedzieć jak to wszystko względem sibeie rozlokować i czy coś usuwać? Zapewne main() może być tylko jeden.
komentarz 12 czerwca 2016 przez MetRiko Nałogowiec (37,110 p.)
Funkcja Int2Str zwraca podaną liczbę w postaci stringa, a funkcja GetFullString zwraca stringa, który jest połączeniem trzech liczb podanych w jej argumentach.

Podobne pytania

0 głosów
1 odpowiedź 256 wizyt
pytanie zadane 11 stycznia 2018 w C i C++ przez mn130496 Gaduła (3,530 p.)
0 głosów
1 odpowiedź 299 wizyt
0 głosów
4 odpowiedzi 140 wizyt
pytanie zadane 18 kwietnia 2017 w C i C++ przez Tomatek Początkujący (260 p.)

92,582 zapytań

141,433 odpowiedzi

319,666 komentarzy

61,966 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

Kolejna edycja największej imprezy hakerskiej w Polsce, czyli Mega Sekurak Hacking Party odbędzie się już 20 maja 2024r. Z tej okazji mamy dla Was kod: pasjamshp - jeżeli wpiszecie go w koszyku, to wówczas otrzymacie 40% zniżki na bilet w wersji standard!

Więcej informacji na temat imprezy 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!

...