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

Funkcja wypisuje liczby zamiast znaków

Ostatnio zmodyfikowano 2014-04-06 13:33
Autor Wiadomość
Sorbet
Temat założony przez niniejszego użytkownika
Funkcja wypisuje liczby zamiast znaków
» 2014-04-06 12:45:21
Napisałem krótki program, który losuje dwie współrzędne (jedna to litera od A do L, druga - liczba od 1 do 12).
Jednak po tym jak chciałem go skrócić, żeby nie pisać trzy razy tego samego. Napisałem więc funkcję, która za argumenty przyjmuje miejsce do wypisania (np. "Skarb") i tablicę ze znakami (w tym wypadku xLitery[]). Problem polega na tym, że kiedy używam tablicy w funkcji nie wypisuje ona np.'L', tylko 70.
Proszę o pomoc.
Załączam kod źródłowy i przykładowe wyjściowe.
C/C++
#include "stdafx.h"
#include <iostream>
#include <cstdlib>
#include <ctime>
#include <string>

int los( int start, int stop )
{
    return rand() %( stop - start + 1 ) + start;
}

void podaj( std::string miejsce, char tab[] )
{
    int i = los( 0, 11 );
    int x = tab[ i ];
    int y = los( 1, 12 );
   
    std::cout << miejsce << "(" << x << ", " << y << ")" << std::endl;
}

int _tmain( int argc, _TCHAR * argv[] )
{
    srand( time( NULL ) );
   
    char x;
    int y;
    int i;
    char xLitery[ 12 ] = { 'A', 'B', 'C', 'D', 'E', 'F', 'G', 'H', 'I', 'J', 'K', 'L' };
   
    i = los( 0, 11 );
    x = xLitery[ i ];
    y = los( 1, 12 );
   
    std::cout << "Spawn(" << x << ", " << y << ")" << std::endl;
   
    i = los( 0, 11 );
    x = xLitery[ i ];
    y = los( 1, 12 );
   
    std::cout << "Skarb(" << x << ", " << y << ")" << std::endl;
   
    i = los( 0, 11 );
    x = xLitery[ i ];
    y = los( 1, 12 );
   
    std::cout << "Power up(" << x << ", " << y << ")" << std::endl;
   
    std::cout << "++++++++++++\n";
   
    podaj( "Spawn", xLitery );
    podaj( "Skarb", xLitery );
    podaj( "Power up", xLitery );
    return 0;
}
Spawn(L, 7)
Skarb(H, 10)
Power up(G, 6)
++++++++++++
Spawn(70, 10)
Skarb(75, 10)
Power up(76, 12)
Z góry dziękuję
-Sorbet
P-107785
Saluter
» 2014-04-06 12:56:39
W funkcji
podaj
 zmienną
x
 definiujesz jako
int
 zamiast jako
char
.
P-107787
Sorbet
Temat założony przez niniejszego użytkownika
» 2014-04-06 13:33:25
Dziękuję bardzo. Tak myślałem, że to jakiś mały błąd.
Zamykam temat
P-107789
« 1 »
  Strona 1 z 1