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

Temat 21. zadanie domowe 2. problem.....

Ostatnio zmodyfikowano 2014-07-30 11:31
Autor Wiadomość
Balhaim
Temat założony przez niniejszego użytkownika
Temat 21. zadanie domowe 2. problem.....
» 2014-07-26 11:48:45
Program ma za zadanie wylosować 8 liczb bez powtórzeń z 10. Z moim jest coś nie tak... Problem dotyczy chyba funkcji "czy". Proszę o szybką pomoc.
C/C++
#include <iostream>
#include <cstdlib>
#include <ctime>
using namespace std;

int cina( int b )
{
    int a = 0;
   
    cout << "Wypisz " << b + 1 << ". liczbe" << endl;
    cin >> a;
   
    return a;
}

bool czy( int a, int d )
{
    int b[ 8 ];
    int c = 0;
   
    if( d = 0 )
    {
        b[ d ] = a;
        return false;
    }
   
    do
    {
        if(( b[ c ] = a ) = true )
        {
            return true;
        }
        c++;
    } while( c < d );
   
    b[ d ] = a;
   
    return false;
}

int main()
{
    srand( time( NULL ) );
    int a[ 10 ];
    int b = 0;
    int c[ 8 ];
    int d;
   
    do
    {
        a[ b ] = cina( b );
        b++;
    } while( b < 10 );
   
    b = 0;
   
    do
    {
        do
        {
            d =( rand() % 10 );
            c[ b ] = a[ d ];
        }
        while
        ( czy( c[ b ], b ) == true );
       
        b++;
    }
    while( b < 8 );
   
    b = 0;
    do
    {
        cout << b + 1 << ". wylosowana to " << c[ b ] << endl;
        b++;
    } while( b < 8 );
   
    return 0;
}
P-114405
pekfos
» 2014-07-26 12:00:30
C/C++
if( d = 0 )
C/C++
if(( b[ c ] = a ) = true )
Mylisz operatory.
P-114409
Mateus.
» 2014-07-27 14:54:16
Twój kompilator pozwala na to co napisał pekfos? Jeśli tak to go zmień.
Gdybyś nadal nie rozumiał
==
 to operator porównania,
=
 to operator przypisania. Jeśli kiedyś będzie ci na przypisaniu w miejscu gdzie kompilator spodziewa się porównania, to można to zrobić tak:
if(( a = b ) ) { }
.
P-114453
pekfos
» 2014-07-27 15:02:08
Twój kompilator pozwala na to co napisał pekfos? Jeśli tak to go zmień.
Twoja klawiatura pozwala na pisanie takich głupot? Zmień ją! Ten kod jest poprawny, tylko nie działa tak, jak autor tematu się spodziewa.. Jak zresztą w wielu przypadkach, gdy popełnia się głupie błędy i/lub nie wie się, co się robi.
P-114454
Mateus.
» 2014-07-27 15:39:30
Moim zdaniem, gdy ktoś pisze w miejscu gdzie ma być warunek operacje przypisania, to kompilator powinien "delikatnie poinformować" o tym, że być może nie o to programiście chodziło. Nie każdy ma takie doświadczenie jak ty i zawsze łatwiej dodać te klamry, gdy nam w danej linijce wyświetli błąd niż zastanawiać się dlaczego program działa, ale nie tak jak chcemy. Poza tym gdzie napisałem, że ten kod jest niepoprawny? Napisałem jedynie, że jego kompilator jest za mało troskliwy (moim zdaniem).
P-114455
pekfos
» 2014-07-27 16:16:23
zawsze łatwiej dodać te klamry, gdy nam w danej linijce wyświetli błąd niż zastanawiać się dlaczego program działa, ale nie tak jak chcemy. Poza tym gdzie napisałem, że ten kod jest niepoprawny?
Jeśli wywala błąd, to nad czym się zastanawiać..? Gdzie napisałeś, że kod jest niepoprawny? W obu postach, pisząc o błędach i 'niepozwalaniu na coś' - to jednoznacznie wskazuje na niepoprawny kod i możesz wprowadzać przez to w błąd. Tu będzie najwyżej ostrzeżenie i to w stylu 'ej stary, na pewno..?', niż faktycznie wskazujące na pomniejszy błąd w kodzie.
P-114457
Mateus.
» 2014-07-27 18:34:12
No dobra, muszę uważać jak piszę. Myślę o ostrzeżeniu (np. czy napewno tego chcesz?), a piszę o błędzie. Ja mimo wszystko wolałbym kompilator, który mnie o takim czymś powiadomi.
P-114476
Elaine
» 2014-07-27 19:49:22
Dlatego każdy szanujący się kompilator to robi, wystarczy go o to ładnie poprosić.
P-114482
« 1 » 2
  Strona 1 z 2 Następna strona