Har precis börjat med c++ och har ett litet problem. Jag kan inte C++ men det ser ut som om du saknar en parentes i while-satsen När du kollar om inmatningen lyckades eller inte ska du använda cin istället för tal, såhär: Tackar. Det löste problemet, men jag fattar inte varför det hjälpte.Loop problem
Har skrivit en liten loop, som stannar om tio tal har matas in eller ett tal som inte är ett tal (alltså en bokstav eller liknande). Sedan har jag en räknare(antal) i loopen och det är här problemet ligger, varför blir räknare maxvärdet(10), det verkar som den räknar fastän loopen är slut. Kan någon förklara detta och visa en lösning?
<code>
#include <iostream>
using namespace std;
const str = 10;
int main()
{
int tal;
int vek[str];
int antal=0;
do
{
cin >> tal;
if (tal)
{
vek[antal] = tal;
antal++;
}
}
while (antal <= str-1 && tal);
cout << antal;
return 0;
}
</code>
Exempel
<code>
232
21
ickegilltigttecken
10
</code>
Tack på förhand.Sv: Loop problem
while ((antal <= str-1) && tal);
Undrar om det inte skulle kunna bli en tilldelning där istället ?
/JohanSv: Loop problem
<code>
#include <iostream>
using namespace std;
const str = 10;
int main()
{
int tal;
int vek[str];
int antal=0;
do
{
cin >> tal;
if (cin)
{
vek[antal] = tal;
antal++;
}
}
while (antal <= str-1 && cin);
cout << antal;
return 0;
}
</code>
/MickeSv: Loop problem
XAdjo: C++ har olika priotet på sakerna så det funkar, som jag skrev=)