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

Pary z tablicy

Ostatnio zmodyfikowano 2016-04-07 22:15
Autor Wiadomość
Moozy
Temat założony przez niniejszego użytkownika
Pary z tablicy
» 2016-04-07 19:34:03
Mam do napisania program w którym wpisuje do tablicy liczbę podana z klawiatury, z tej tablicy wypisuje mi liczby parami, a później wypisuje większą liczbę. Ogólnie mam już wszystko, tylko nie umiem wypisać tej pary ;-; coś nie mogę na to wpaść. Założę się, że jest to proste, ale potrzebuję pomocy. Oto kod:


C/C++
/
#include <iostream>
#include <iomanip>
#include <ctime>
#include <cmath>
#include <windows.h>

using namespace std;

int main()
{
    long long a;
    int licznik = 0;
    int rozmiar;
    long long n;
    int parzysta;
    int nieparzysta;
   
   
    cout << "Podaj a: ";
    cin >> a;
    n = a;
    cout << "A: " << a;
   
   
    while( a > 0 )
    {
        a /= 10;
        licznik++;
        //cout<<a<<endl;            
    }
   
    cout << "Rozmiar: " << licznik << endl;
   
   
    if( licznik % 2 == 0 )
         rozmiar = licznik + 1 +( licznik / 2 );
    else
         rozmiar = licznik + 2 +( licznik / 2 );
   
   
    int tab[ rozmiar ];
   
   
    for( int i = 0; i < rozmiar; i++ )
    {
        tab[ i ] = 0;
    }
   
   
    for( int i = licznik - 1; i >= 0; i-- )
    {
        cout << n % 10 << endl;
        tab[ i ] = n % 10;
        n = n / 10;
    }
   
    int licznik2 = licznik;
   
    licznik2 += 1;
   
    for( int i = 0; i < licznik; i++ )
    {
        if(( i == licznik - 1 ) &&( licznik % 2 == 1 ) )
        {
            parzysta = tab[ i ];
            nieparzysta = tab[ 0 ];
            if( parzysta > nieparzysta )
            {
                tab[ licznik2 ] = parzysta;
                licznik2++;
            }
            else
            {
                tab[ licznik2 ] = nieparzysta;
                licznik2++;
            }
        }
        else if( i % 2 == 0 )
        {
            parzysta = tab[ i ];
            nieparzysta = tab[ i + 1 ];
            if( parzysta > nieparzysta )
            {
                tab[ licznik2 ] = parzysta;
                licznik2++;
            }
            else if( parzysta < nieparzysta )
            {
                tab[ licznik2 ] = nieparzysta;
                licznik2++;
            }
           
           
        }
    }
   
    cout << endl;
    [ / i ]
    [ cpp / ]
P-147051
Gibas11
» 2016-04-07 19:37:45
Wstaw kod w znacznikach
[cpp]/* tu kod */[/cpp]
.
P-147052
carlosmay
» 2016-04-07 19:44:11
Przykład:
C/C++
int tab[] { 1, 2, 3, 4, 5, 6 }; // od C++11

for( int i = 0; i <( sizeof( tab ) / sizeof( int ) ) - 1; i += 2 ) {
    std::cout << tab[ i ] << " oraz " << tab[ i + 1 ] << " i wieksza z nich to: "
    <<( tab[ i ] > tab[ i + 1 ] ? tab[ i ]: tab[ i + 1 ] ) << std::endl;
}
P-147053
Moozy
Temat założony przez niniejszego użytkownika
» 2016-04-07 20:13:15

Przykład:
C/C++
int tab[] { 1, 2, 3, 4, 5, 6 }; // od C++11

for( int i = 0; i <( sizeof( tab ) / sizeof( int ) ) - 1; i += 2 ) {
    std::cout << tab[ i ] << " oraz " << tab[ i + 1 ] << " i wieksza z nich to: "
    <<( tab[ i ] > tab[ i + 1 ] ? tab[ i ]: tab[ i + 1 ] ) << std::endl;
}


Jezeli wpisze swoja liczbę np:1234 to dodatkowo sprawdza mi jeszcze 0 z 2 :/
P-147054
carlosmay
» 2016-04-07 21:01:23
Mam do napisania program w którym wpisuje do tablicy liczbę podana z klawiatury, z tej tablicy wypisuje mi liczby parami, a później wypisuje większą liczbę.
Możesz rozwinąć tą myśl. Jest bardzo niejasna.

Tak przydziela się pamięć dla tablic o rozmiarze ustalanym w locie.
C/C++
int * tab = new int[ rozmiar ];
//...
delete[] tab;
a jeszcze lepiej tak
std::vector < int > tab( rozmiar );


Skorzystaj z std::string i problem z głowy:
C/C++
std::string tab;
std::getline( std::cin, tab );
if( tab.size() % 2 == 0 ) {
    for( int i = 0; i < tab.size() - 1; i += 2 ) {
        std::cout << tab[ i ] << " oraz " << tab[ i + 1 ] << " i wieksza z nich to: "
        <<( tab[ i ] > tab[ i + 1 ] ? tab[ i ]: tab[ i + 1 ] ) << std::endl;
    }
}
else {
    std::cout << "Liczba nie jest parzystej dlugosci" << std::endl;
}

P-147059
Moozy
Temat założony przez niniejszego użytkownika
» 2016-04-07 22:15:36
Zrobiłem coś taiego:

C/C++
for( int i = 0; i <( licznik ) - 1; i++ )
{
    cout << tab[ i ] << " i " << tab[ i + 1 ] << " i wieksza to: ";
    cout <<( tab[ i ] > tab[ i + 1 ] ? tab[ i ]: tab[ i + 1 ] ) << endl;
}

i działa :D to zadanie akurat bez stringa musiałem zrobić
P-147061
« 1 »
  Strona 1 z 1