#include<iostream>
using namespace std;
int sNamn(void);
int sKo(void);
int main()
{
cout<<"dina siffror adderade är: "<<sNamn()<<endl;
cout<<"dina siffror adderade plus 5 är: "<<sNamn()+5<<endl;
cout<<"ditt nummer är: "<<sKo()<<endl;
return 0;
}
int sNamn()
{
int a,b;
cout<<"skriv in en siffra: "<<endl;
cin>>a;
cout<<"skriv in en annan siffra: "<<endl;
cin>>b;
return (a+b);
}
int sKo()
{
int c;
cout<<"skriv in ett nummer: "<<endl;
cin>>c;
return(c);
}
Min fråga är varför funktionen sNamn() sker två gånger?
c++ kod, varför sker detta?
Re: c++ kod, varför sker detta?
Du anropar sNamn två gånger. Försök med att lagra resultatet av det första anropet.kimU skrev: cout<<"dina siffror adderade är: "<<sNamn()<<endl;
cout<<"dina siffror adderade plus 5 är: "<<sNamn()+5<<endl;
Min fråga är varför funktionen sNamn() sker två gånger?
Re: c++ kod, varför sker detta?
Det som sker två gånger är att "adderade är:..." och "adderade plus är:..." skrivs två gånger efter varandra.TicToc skrev:Du anropar sNamn två gånger. Försök med att lagra resultatet av det första anropet.kimU skrev: cout<<"dina siffror adderade är: "<<sNamn()<<endl;
cout<<"dina siffror adderade plus 5 är: "<<sNamn()+5<<endl;
Min fråga är varför funktionen sNamn() sker två gånger?
Undrar varför detta sker.
- SlamsornasKung
- Inlägg: 886
- Blev medlem: 27 jun 2009, 19:23
- OS: Ubuntu
- Utgåva: 22.04 Jammy Jellyfish LTS
- Ort: 08
Re: c++ kod, varför sker detta?
Jo, därför att du anropar den 2 ggr. Jämför med den här koden:
Din funktion ser ju ut som:
Varje gång du anropar den så anropas ju också cout<<"skriv in en siffra: "<<endl; med mera. Lösningen ovan kanske inte är klockren, men den har funktioner som _bara_ returnerar värdena (int sNamn_haemta_resultat();) _utan_ att skriva ut allting en gång till.
Som sagt, lösningen är nog allt annat än klockren (har använt globala variabler - vilket nog inte är så smart), men den kanske ger dig en fingervisning om hur du skulle kunna göra.
Förresten, det är lättare att felsöka om du indenterar din kod ordentligt. Ett tips bara.
Hoppas det var till någon hjälp.
Kod: Markera allt
#include<iostream>
using namespace std;
int sNamn();
int sKo();
int sNamn_haemta_resultat();
int sKo_haemta_resultat();
int a,b,c = 0;
int main()
{
sNamn();
cout << "dina siffror adderade är: " << sNamn_haemta_resultat() << endl;
cout << "dina siffror adderade plus 5 är: " << sNamn_haemta_resultat()+5 << endl;
sKo();
cout << "ditt nummer är: "<< sKo_haemta_resultat() << endl;
return 0;
}
int sNamn()
{
cout << "skriv in en siffra: " << endl;
cin >> a;
cout << "skriv in en annan siffra: " << endl;
cin >> b;
}
int sNamn_haemta_resultat()
{
return (a+b);
}
int sKo()
{
cout << "skriv in ett nummer: " << endl;
cin >> c;
}
int sKo_haemta_resultat()
{
return (c);
}
Kod: Markera allt
int sNamn()
{
int a,b;
cout<<"skriv in en siffra: "<<endl;
cin>>a;
cout<<"skriv in en annan siffra: "<<endl;
cin>>b;
return (a+b);
}
Som sagt, lösningen är nog allt annat än klockren (har använt globala variabler - vilket nog inte är så smart), men den kanske ger dig en fingervisning om hur du skulle kunna göra.
Förresten, det är lättare att felsöka om du indenterar din kod ordentligt. Ett tips bara.
Hoppas det var till någon hjälp.
HP NC2400 - Ubuntu 10.04 • Fujitsu Siemens AmiloM7400 - Arch Linux • HP/Compaq Mini 110C - Ubuntu 10.04
CryingFreeman skrev:[…] Ubuntu är och förblir en meritokrati, inget demokratiskt experiment där alla får säga vad som helst till vem som helst, hur som helst.
Re: c++ kod, varför sker detta?
SlamsornasKung skrev:Jo, därför att du anropar den 2 ggr. Jämför med den här koden:
Din funktion ser ju ut som:Kod: Markera allt
#include<iostream> using namespace std; int sNamn(); int sKo(); int sNamn_haemta_resultat(); int sKo_haemta_resultat(); int a,b,c = 0; int main() { sNamn(); cout << "dina siffror adderade är: " << sNamn_haemta_resultat() << endl; cout << "dina siffror adderade plus 5 är: " << sNamn_haemta_resultat()+5 << endl; sKo(); cout << "ditt nummer är: "<< sKo_haemta_resultat() << endl; return 0; } int sNamn() { cout << "skriv in en siffra: " << endl; cin >> a; cout << "skriv in en annan siffra: " << endl; cin >> b; } int sNamn_haemta_resultat() { return (a+b); } int sKo() { cout << "skriv in ett nummer: " << endl; cin >> c; } int sKo_haemta_resultat() { return (c); }
Varje gång du anropar den så anropas ju också cout<<"skriv in en siffra: "<<endl; med mera. Lösningen ovan kanske inte är klockren, men den har funktioner som _bara_ returnerar värdena (int sNamn_haemta_resultat();) _utan_ att skriva ut allting en gång till.Kod: Markera allt
int sNamn() { int a,b; cout<<"skriv in en siffra: "<<endl; cin>>a; cout<<"skriv in en annan siffra: "<<endl; cin>>b; return (a+b); }
Som sagt, lösningen är nog allt annat än klockren (har använt globala variabler - vilket nog inte är så smart), men den kanske ger dig en fingervisning om hur du skulle kunna göra.
Förresten, det är lättare att felsöka om du indenterar din kod ordentligt. Ett tips bara.
Hoppas det var till någon hjälp.
Ber om ursäkt, men jag klistrade in fel kod.
Doh!
De löste sig i alla fall.