(C++) ezzel mi a baj?
#include "stdafx.h"
#include <iostream>
#include <fstream>
#include <string>
using namespace std;
int main()
{
string dist, plus, mult;
plus = 15;
cout << "The Voyager-1's distance from the Earth is more than:" << endl;
0 + plus = dist;
coutdist:
dist + plus = dist;
cout << dist;
goto coutdist;
system("pause");
}
Szóval, lényegében semennyit sem értek a nyelvhez, csak próbáltam írni egy számolós programot. Tudom, hogy maga az ötlet is hülyeség, de most nem ez a lényeg. Milyen hibák vannak benne? Például van egy olyan, hogy " 0 + plus " - ezzel mi a baj? Amikor a 0-t átírom mondjuk 1-re, akkor jó. Szóval miért nem lehet nullához hozzáadni?
Egyébként azt hogy oldhatnám meg, hogy várjon, mielőtt újrakezdi az rész? (Az ismétlőset (coutdist - goto coutdist))
Köszönöm a válaszokat!
dist + plus = dist;
Ez szerintem le sem fordul.
Értékadás (=): a bal oldalon lévő VÁLTOZÓNAK értéket ad
Tehát a bal oldalon egyetlen változónak kéne lennie. Ehelyett meg van egy összeadás...
Tehát így kéne kinéznie:
dist = dist + plus;
Na akkor nézzük sorjában:
"string dist, plus, mult;
plus = 15;"
Deklarálsz 3 stringet, majd az egyiknek rögtön értékül adsz egy intet. Hát hogyismondjam.
"0 + plus = dist;"
Ez nem tudom mi akar lenni, de biztos nem az amit te szeretnél.
"coutdist:
dist + plus = dist;
cout << dist;
goto coutdist;"
A goto az örgöd műve, ne használd, ide meg különösen felesleges.
Valamint szintén van egy teljesen hibás fordított értékadás.
Tehát hogy mi a baj: tragikusan szar az egész.
Ha érdekel a dolog az oké, de ugorj vissza az első leckére, mert ez itt szar, nem kód.
GOTO helyett meg ciklust használnék. Átláhatóbb lesz a kód.
Várakozásra meg attól függ, mit szeretnél. Billentyűleütésre váráshoz jó az a system("pause"); is.
Ugyanez a kód igényesen (amennyiben Windowst használsz):
Köszönöm a válaszokat! :) Szóval ma fordított napot tartok, csak nem tudtam róla.
Úgy gondoltam, hogy ha úgy írom a matematikai dolgokat, mint ahogy egy papírra írnám, akkor az úgy jó lesz. Tévedtem. Azt egyáltalán nem tudtam, hogy is néz ki egy ciklus. A sleep(1000) az 1 másodperc?
ne mondjatok rám semmi idenemillő szót, nem értek a programozáshoz, csak kipróbáltam, hogy hogyan is néz ki a dolog.
Egyébként ennek az oldalnak a számlálóját akartam átültetni egy konzolos "programba":
Na, ez megoldás sok problémámra! :)
De nekem csak a ' _sleep '-et fogadja el. Az ugyanez?
Ja, és azt hogy lehet megcsinálni, hogy a program felajánl választási lehetőséget, mondjuk 2 parancs között. Valahogy így:
std::cin >> ez -vagy- az;
Vagyis az biztos, hogy nem ennyi lenne, csak érdekel, ezt hogyan lehet kivitelezni.
Például így:
string parancs;
do {
cin >> parancs;
if (parancs == "ez") {
// ...
}
if (parancs == "az") {
// ...
}
// ...
} while (parancs != "ez" && parancs != "az");
Kapcsolódó kérdések:
Minden jog fenntartva © 2024, www.gyakorikerdesek.hu
GYIK | Szabályzat | Jogi nyilatkozat | Adatvédelem | Cookie beállítások | WebMinute Kft. | Facebook | Kapcsolat: info(kukac)gyakorikerdesek.hu
Ha kifogással szeretne élni valamely tartalommal kapcsolatban, kérjük jelezze e-mailes elérhetőségünkön!