Find fejlen :D

Tags:    c++

Hey drenge har lavet et lille "program" hvor der skal indtastes 2 tal og de så bliver ganget og lidt af hvert.. men kan ikke lige finde fejlen.. koden er

#include <iostream>
#include <string>
#include <time.h>
#include <stdlib.h>
using namespace std;

int add(int a, int b)
{
int c = a * b;
return c;
}
int main()
{
int tal1, tal2;
cout << "Skriv 2 tal der skal ganges med hinanden: ";
cin >> tal1;
cout << "Skriv nu tal nummer 2 som skal ganges: ";
cin >> tal2;
cout << endl << endl << "Du har valgt disse 2 tal som nu vil blive ganget med hinanden" << endl;
cout << tal1 << " " << tal2 << endl;
cin.get();
cin.get();
if(tal1 == tal2)
{
cout << "Tallene er de samme! Er du sikker pA du vil forsatte?" << endl;
cout << "Ja" << endl << "Nej" << endl;
string JaNej;
getline(cin, JaNej);
if(JaNej = "Ja")
{
cout << "Du har valgt at skrive Ja" << endl;
cin.get();
}
else(JaNej = "Nej");
{
cout << "Du har valgt at skrive Nej og programmet lukkes!" << endl;
cin.get();
cin.get();
return 0;
}
}

int x = add(tal1, tal2);
cout << tal1 << " * " << tal2 << " = " << x << endl;
cin.get();
cin.get();
}

Hvis i kan finde de 2 fejl så hjælp, Tak :)



10 svar postet i denne tråd vises herunder
3 indlæg har modtaget i alt 6 karma
Sorter efter stemmer Sorter efter dato
Hey drenge har lavet et lille "program" hvor der skal indtastes 2 tal og de så bliver ganget og lidt af hvert.. men kan ikke lige finde fejlen.. koden er

#include <iostream>
#include <string>
#include <time.h>
#include <stdlib.h>
using namespace std;

int add(int a, int b)
{
int c = a * b;
return c;
}
int main()
{
int tal1, tal2;
cout << "Skriv 2 tal der skal ganges med hinanden: ";
cin >> tal1;
cout << "Skriv nu tal nummer 2 som skal ganges: ";
cin >> tal2;
cout << endl << endl << "Du har valgt disse 2 tal som nu vil blive ganget med hinanden" << endl;
cout << tal1 << " " << tal2 << endl;
cin.get();
cin.get();
if(tal1 == tal2)
{
cout << "Tallene er de samme! Er du sikker pA du vil forsatte?" << endl;
cout << "Ja" << endl << "Nej" << endl;
string JaNej;
getline(cin, JaNej);
if(JaNej = "Ja")
{
cout << "Du har valgt at skrive Ja" << endl;
cin.get();
}
else(JaNej = "Nej");
{
cout << "Du har valgt at skrive Nej og programmet lukkes!" << endl;
cin.get();
cin.get();
return 0;
}
}

int x = add(tal1, tal2);
cout << tal1 << " * " << tal2 << " = " << x << endl;
cin.get();
cin.get();
}

Hvis i kan finde de 2 fejl så hjælp, Tak :)


Nu har jeg fundet svaret.. Eller i hvert fald noget der virker =) Jeg fjernede (JaNej = "Nej"); efter else og lavede 2 = tegn i din if sætning =) koden er som følger:

Fold kodeboks ind/udKode 




if(JaNej = "Ja")
{
cout << "Du har valgt at skrive Ja" << endl;
cin.get();
}
else(JaNej = "Nej");

skal blive

if (JaNej == "Ja")
{
cout << "Du har valgt at skrive Ja" << endl;
cin.get();
}
else if (JaNej =) "Nej")



Henrik, Min første forum tråd så kunne ikke lige finde den der kodeboks :p


Tænkte jeg nok, men så var det jo godt at du fik det at vide:D



||In function `int main()':|
|29|error: could not convert `(&JaNej)->std::basic_string<_CharT, _Traits, _Alloc>::operator= [with _CharT = char, _Traits = std::char_traits<char>, _Alloc = std::allocator<char>](((const char*)"Ja"))' to `bool'|
||=== Build finished: 1 errors, 0 warnings ===|


Det er hvad jeg får af fejl når jeg compiler det..

Håber du kan bruge hjælpen..



Hey drenge har lavet et lille "program" hvor der skal indtastes 2 tal og de så bliver ganget og lidt af hvert.. men kan ikke lige finde fejlen.. koden er
Fold kodeboks ind/udKode 

Hvis i kan finde de 2 fejl så hjælp, Tak :)


Bare et lille råd... det gør det lidt nemmere at overskue siden hvis du bruger kodebokse;)



Ja det er squ da også rigtigt Martin :D havde jeg ikke lige set tak :)



Henrik, Min første forum tråd så kunne ikke lige finde den der kodeboks :p







Indlæg senest redigeret d. 27.09.2008 21:44 af Bruger #13861
Pointen er at der er forskel på
if(JaNej = "Ja")
og
if(JaNej == "Ja")

Et lighedstegn betyder: kopier det til højre over i det til venstre.

To lighedstegn er en sammenligning.

Hvis man bruger:
if(x = y)
Betyder det at x sættes til at være lig med y, og resultatet sammenlignes med 0, så hvis y var forskellig fra 0 vil if sætningen være sand.

Derudover skal det være
else if(JaNej == "Nej")

Dvs. der skal if efter else, og ingen ; efter parentesen.



Hehe, ja :D



t