Asi už jsem otravnej, ale proč mi to vypisuje jméno špatně? Díky.
#include<iostream>
using namespace std;
int main()
{
cout << "How old are you?\n";
int year;
cin >> year;
cin.get();
cout << "Your name?\n";
char address[80];
cin.getline(address, 80);
int PRD[4];
int i=0;
while (i<5)
{
cout << "Write your number:\n";
cin >> PRD[i];
i++;
}
int m=PRD[0]+PRD[1]+PRD[2]+PRD[3]+PRD[4];
cout << "Your name is: " << address << "\n";
cout << "You are " << year << " years old\n";
cout << "Your number is:" << m;
cout << "\nKonec!";
cin.get();
cin.get();
return 0;
}
Zkus opravit fatální chybu, na kterou tě upozornil ondra.holub a pokud to nepomůže, tak sem hoď výpis běhu toho tvého programu (co zadáváš a co se ti vypíše).
Tak ještě dotaz, měl jsem vypsat jméno pozpátku, udělal jsem to dobře? Jde lépe/snáze? A teď mi nefungují čísla, zadám například čtyřikrát 0 jednou 1 a jako výsledek mi to vyhodí 10x4433c4.
#include<iostream>
#include<cstring>
using namespace std;
int main()
{
cout << "How old are you?\n";
int k=80;
int year;
cin >> year;
cin.get();
cout << "Your name?\n";
char address[80];
cin.getline(address,80);
int PRD[5];
int i=0;
while (i<5)
{
cout << "Write your number:\n";
cin >> PRD[i];
i++;
}
int p=0;
int m=PRD[0]+PRD[1]+PRD[2]+PRD[3]+PRD[4];
cout << "Your name is: " << address << "\n";
cout << "You are " << year << " years old\n";
cout << "Your number is: " << m << cout << "\n";
while (p<=strlen(address))
{cout << address[strlen(address)-p];
p++;
}
cout << "\nEnd!";
cin.get();
cin.get();
return 0;
}
Na vypsání řetězce odzadu asi lépe použít for cyklus od strlen-1 do 0. A počkej až KIIV uvidí tu tvoji podmínku, ten ti jich nandá :) (opakovaně zjišťuješ délku řetězce). No a to načtení čísel ... proč máš po načtení year cin.get()?
cin.get() tam je protože mi to bylo vysvětleno jako oprava před cin.getline. ("Problém spočívá v tom, že když cin přečte rok, tak zanechá znak nového řádku generovaný klávesou Enter ve vstupní frontě. Potom cin.getline() přečte nový řádek jako prázdný a přiřadí prázdný řetězec do pole")
Tu délku zjištuji pořád dokola, protože sem nevěděl jak to uložit například do int. Zkoušel jsem to jako:
Řeší to jenom to, že tu délku máš uloženou a pak už ji jenom testuješ s aktuální pozicí.
No a ptal jsem se záměrně, jestli víš, že ti na vstupu zůstává znak nebo jestli to tam dáváš mechanicky, protože si to někde viděl. A s tím výsledkem ... než postoupíme dál ... co si třeba, po načtení všech čísel do toho pole, je nechat všechny vypsat, ať víš, co se ti tam skutečně uložilo.
Vypisuje to dobře. Problém bude tedy asi v int m. Zkusil jsem zobrazit i pouze první znak a beze změny. Hádám, že nějak špatně vypisuji toto: int m=PRD[0];
nebo je špatně už int PRD[5];
Jinak, koukal jsem co by mohlo být 4433c4 a je to fialová(předpokládám, že jste to věděli), takže je problém někde už v základu? Vážně netuším proč to takhle vypisuje..