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

Problemy z warunkiem if

Ostatnio zmodyfikowano 2008-03-20 20:27
Autor Wiadomość
pg
Temat założony przez niniejszego użytkownika
Problemy z warunkiem if
» 2008-02-13 20:48:28
Dopiero się uczę, ale już staram się coś kombinować i niestety nie zawsze mi wychodzi. Pierwszy problem:
C/C++
#include<iostream>
#include<conio.h>
using namespace std;
int main()
{
    char wyraz[ 100 ];
    char tak = tak;
    cout << "Czy jestes x??(wpisz tak lub nie, w innym przypadku program zostanie zamkniety): " << endl;
    gets( wyraz );
    if( wyraz = tak )
    {
        cout << "wszystkiego najlepszego z okazji walentynek walenty" << endl;
    } else
    {
        cout << "Przekaz x zyczenia" << endl;
    }
    getch();
    return( 0 );
}
a mianowicie polega on na tym, że chciałbym aby po napisaniu "tak" wykonała mi się instrukcja z warunku. Wiem, że trochę zagmatwałem, ale jak by co topytać. Jakbym miał jakieś problemy to będę umieszczał w tym temacie
P-310
DejaVu
Poprawna postać kodu
» 2008-02-13 21:28:04
C/C++
#include<iostream>
#include<conio.h>
using namespace std;
int main()
{
    char wyraz[ 100 ];
    cout << "Czy jestes x\?\?(wpisz tak lub nie, w innym przypadku program zostanie zamkniety): " << endl;
    gets( wyraz );
    cout << "odp:" << wyraz << endl;
    if( strcmp( wyraz, "tak" ) == 0 )
    {
        cout << "wszystkiego najlepszego z okazji walentynek walenty" << endl;
    } else
    {
        cout << "Przekaz x zyczenia" << endl;
    }
    getch();
    return( 0 );
}
P-311
sierazaa
» 2008-03-20 20:27:49
Ja bym proponował naprawić to trochę inaczej.
Wytłumaczę Ci wszystkie popełnione błędy:

C/C++
#include<iostream> // Powinienes zapisac to z odstepem,
#include<conio.h>  // aby zwiekszyc czytelnosc kodu
using namespace std;
int main()
{
    char wyraz[ 100 ]; // Dla trzech liter tablica dla 100 znakow?
    char tak = tak;
    cout << "Czy jestes x??(wpisz tak lub nie, w innym przypadku program zostanie zamkniety): " << endl;
    gets( wyraz );
    if( wyraz = tak ) // do porownania wykorzystujemy == ,
    // jeden znak = oznacza przypisanie
    {
        cout << "wszystkiego najlepszego z okazji walentynek walenty" << endl;
    } else
    {
        cout << "Przekaz x zyczenia" << endl;
    }
    getch();
    return( 0 ); // Lepiej zapisywac  return 0, chociaz return(0) nie jest zle
}

Teraz pokaze Ci jak powinienes ten kod napisac:

C/C++
#include <iostream>
#include <conio.h>
#include <string>
using namespace std;
int main()
{
    string wyraz;
    cout << "Czy jestes x??(wpisz tak lub nie, w innym przypadku program zostanie zamkniety): " << endl;
    cin >> wyraz;
    if( wyraz == "tak" )
    {
        cout << "wszystkiego najlepszego z okazji walentynek walenty\n" << endl;
    }
    else
    {
        cout << "Przekaz x zyczenia\n" << endl;
    }
    getch();
    return 0;
}

Nie używaj do przetrzymywania 'słów' tablic char. Tak było w C. C++ posiada bibliotekę STRING w której o wiele łatwiej zapisuje się 'słowa'. Np. string text; string text = "jakis tekst';

Do sprawdzania (przy IF) czy zmienna wyraz to 'tak' nie używaj innej zmiennej, bo po prostu tylko marnujesz pamięć. Lepiej wpisać  if(wyraz=="tak").

Jeśli masz jakieś pytania to wal śmiało :-)

PS: Jak by program po kompilacji nie czakał na naciśnięcie dowolnego klawisza ( getch(); ) wpisz po  cin >> wyraz;  cos takiego:  cin.ignore();
P-396
« 1 »
  Strona 1 z 1