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

Tablice zmiennych

Ostatnio zmodyfikowano 2010-11-24 17:14
Autor Wiadomość
Owex
Temat założony przez niniejszego użytkownika
Tablice zmiennych
» 2010-11-24 17:11:09
Witam. Próbowałem napisać tablicę (a właściwie 3tablice) zmiennych które wyświetliłyby takie coś:
1.Styczen 31
2.Luty    29
3.Marzec  31
itd.itd.
Ale wychodzi mi w ogóle co innego. Zamiast dni (31, 29, 31...) to jakieś niezrozumiałe znaki, a kiedy dochodzi do Października to wygląda to tak: 10.PaździernikListopad/tutaj niezrozumiały ciąg cyfr i znaków/
Mam taki kod:
C/C++
#include <iostream>
#include <conio.h>
const int MIESIACE = 12;

using namespace std;

int main()
{
    //liczba miesiąca
    char tab1[ MIESIACE ][ 3 ] = {
        { ' ', '1', '.' },
        { ' ', '2', '.' },
        { ' ', '3', '.' },
        { ' ', '4', '.' },
        { ' ', '5', '.' },
        { ' ', '6', '.' },
        { ' ', '7', '.' },
        { ' ', '8', '.' },
        { ' ', '9', '.' },
        { '1', '0', '.' },
        { '1', '1', '.' },
        { '1', '2', '.' },
    };
   
   
    //nazwa miesiąca
    char tab2[ MIESIACE ][ 11 ] = {
        { 'S', 't', 'y', 'c', 'z', 'e', 'n' },
        { 'L', 'u', 't', 'y' },
        { 'M', 'a', 'r', 'z', 'e', 'c' },
        { 'K', 'w', 'i', 'e', 'c', 'i', 'e', 'n' },
        { 'M', 'a', 'j' },
        { 'C', 'z', 'e', 'r', 'w', 'i', 'e', 'c' },
        { 'L', 'i', 'p', 'i', 'e', 'c' },
        { 'S', 'i', 'e', 'r', 'p', 'i', 'e', 'n' },
        { 'W', 'r', 'z', 'e', 's', 'i', 'e', 'n' },
        { 'P', 'a', 'z', 'd', 'z', 'i', 'e', 'r', 'n', 'i', 'k' },
        { 'L', 'i', 's', 't', 'o', 'p', 'a', 'd' },
        { 'G', 'r', 'u', 'd', 'z', 'i', 'e', 'n' },
    };
   
    //ilość dni    
    int tab3[ MIESIACE ][ 2 ] = {
        { '3', '1' },
        { '2', '9' },
        { '3', '1' },
        { '3', '0' },
        { '3', '1' },
        { '3', '0' },
        { '3', '1' },
        { '3', '1' },
        { '3', '0' },
        { '3', '1' },
        { '3', '0' },
        { '3', '1' },
    };
   
   
   
   
   
   
   
   
   
    cout << tab1[ 0 ][ 0 ] << tab1[ 0 ][ 1 ] << tab1[ 0 ][ 2 ] <<
    tab2[ 0 ] << tab3[ 0 ] << endl;
    cout << tab1[ 1 ][ 0 ] << tab1[ 1 ][ 1 ] << tab1[ 1 ][ 2 ] <<
    tab2[ 1 ] << tab3[ 1 ] << endl;
    cout << tab1[ 2 ][ 0 ] << tab1[ 2 ][ 1 ] << tab1[ 2 ][ 2 ] <<
    tab2[ 2 ] << tab3[ 2 ] << endl;
    cout << tab1[ 3 ][ 0 ] << tab1[ 3 ][ 1 ] << tab1[ 3 ][ 2 ] <<
    tab2[ 3 ] << tab3[ 3 ] << endl;
    cout << tab1[ 4 ][ 0 ] << tab1[ 4 ][ 1 ] << tab1[ 4 ][ 2 ] <<
    tab2[ 4 ] << tab3[ 4 ] << endl;
    cout << tab1[ 5 ][ 0 ] << tab1[ 5 ][ 1 ] << tab1[ 5 ][ 2 ] <<
    tab2[ 5 ] << tab3[ 5 ] << endl;
    cout << tab1[ 6 ][ 0 ] << tab1[ 6 ][ 1 ] << tab1[ 6 ][ 2 ] <<
    tab2[ 6 ] << tab3[ 6 ] << endl;
    cout << tab1[ 7 ][ 0 ] << tab1[ 7 ][ 1 ] << tab1[ 7 ][ 2 ] <<
    tab2[ 7 ] << tab3[ 7 ] << endl;
    cout << tab1[ 8 ][ 0 ] << tab1[ 8 ][ 1 ] << tab1[ 8 ][ 2 ] <<
    tab2[ 8 ] << tab3[ 8 ] << endl;
    cout << tab1[ 9 ][ 0 ] << tab1[ 9 ][ 1 ] << tab1[ 9 ][ 2 ] <<
    tab2[ 9 ] << tab3[ 9 ] << endl;
    cout << tab1[ 10 ][ 0 ] << tab1[ 10 ][ 1 ] << tab1[ 10 ][ 2 ] <<
    tab2[ 10 ] << tab3[ 10 ] << endl;
    cout << tab1[ 11 ][ 0 ] << tab1[ 11 ][ 1 ] << tab1[ 11 ][ 2 ] <<
    tab2[ 11 ] << tab3[ 11 ] << endl;
   
   
   
    getch();
    return 0;
}

Co jest źle? I czy da się to zapisać prościej i krócej? (wciąż używając tylko tablic)
P-24449
ison
» 2010-11-24 17:14:29
Co jest źle?
C/C++
tab2[ 0 ] << tab3[ 0 ] << endl;
tab3 to tablica dwuwymiarowa w twoim programie

I czy da się to zapisać prościej i krócej? (wciąż używając tylko tablic)
co masz na myśli mówiąc 'tylko tablic'? sam for skróciłby kod


kod:
C/C++
#include <cstdio>

int main()
{
    char miesiace[ 12 ][ 12 ] = {
        "Styczen", "Luty", "Marzec",
        "Kwiecien", "Maj", "Czerwiec",
        "Lipiec", "Sierpien", "Wrzesien",
        "Pazdziernik", "Listopad", "Grudzien" };
    int ilosci[ 12 ] = {
        31, 29, 31,
        30, 31, 30,
        31, 31, 30,
        31, 30, 31 };
   
    for( int i = 0; i < 12; ++i ) {
        printf( "%2d. %s %d\n", i + 1, miesiace[ i ], ilosci[ i ] );
    }
}
dodaj sobie już tam co chcesz na końcu programu aby go zatrzymać i zobaczyć wynik
P-24452
« 1 »
  Strona 1 z 1