• 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)

VPS Starter Arubacloud
0 głosów
198 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ź 247 wizyt
pytanie zadane 11 stycznia 2018 w C i C++ przez mn130496 Gaduła (3,530 p.)
0 głosów
1 odpowiedź 279 wizyt
0 głosów
4 odpowiedzi 134 wizyt
pytanie zadane 18 kwietnia 2017 w C i C++ przez Tomatek Początkujący (260 p.)

92,454 zapytań

141,262 odpowiedzi

319,089 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!

...