Permalänk
Medlem

Enkel C++

Tja... Förstår inte varför det inte funkar, någon vägledning vore bra! När jag laddar detta så får jag printa in mina siffror, men efter jag gjort detta så händer ingenting. Så jag tror jag gjort något fel vid While loopen eftersom den inte klarar av att gå vidare. Är ganska grön på c++ och inte kodat på snart ett halvår, så en del är glömt, och det blir itne lättare då VB säger att allt stämmer xD

#include "stdafx.h" #include <iostream> #include "conio.h" using namespace std; int _tmain(int argc, _TCHAR* argv[]) { int aray[10]; int x = 0; //length int val; int val2 = 1; do { cout << "skriv vilka fem siffror du vill ha: "; while (cin >> aray[x]) { x++; } cout << endl << "Vilken ordning vill du det skall skrivas ut: "<< endl << "1 = Vanlig ordning" << endl << "2 = Bakv'a'nd ordning" << endl; cin >> val; if (val == 1){ for(int i=0; i<x; i++) { cout << aray[i]; } } else if (val == 2) { for(int z=x-1; z>=0; z--) { cout << aray[z]; } } cout << endl << "Igen? 1 = ja, 2 = nej" << endl; cin >> val2; } while (val2 != 2); return 0; _getch(); }

Permalänk
Hedersmedlem
Skrivet av Headman:

while (cin >> aray[x]) { x++; }

Ett problem är att inget säger att enbart fem siffror skall matas in. Du skulle till exempel istället kunna skriva:

while (x < 5 && cin >> aray[x]) { x++; }

Permalänk
Medlem
Skrivet av Elgot:

Ett problem är att inget säger att enbart fem siffror skall matas in. Du skulle till exempel istället kunna skriva:

while (x < 5 && cin >> aray[x]) { x++; }

Eller:

while(x<5) { cin >> aray[x++]; }

Permalänk
Medlem

Programmet laddar fortfarande inte!

Permalänk
Medlem
Skrivet av Headman:

Programmet laddar fortfarande inte!

Visa vad du ändrat.

Visa signatur

Vill du ha svar? Citera mig gärna.

Permalänk
Medlem

Använd dig av Yous lösning. Fast flytta på variabel x till precis innan while loopen, så här:

int x = 0; while (x<5) { cin >> aray[x++]; }

Har testat detta och funkat hur bra som helst. Vad ska du med getch till? Efter return dessutom? Ta bort!

Permalänk
Medlem

Jag har ej gjort några förändringar förutom ersatt loopen med Chigurhs förslag. Dock så blir det såhär:

Notera att jag även har x < 6 inte fem. Så ignorera skriv fem nummer texten.. för det är programerat för 6! Dock funkar det som sagt ej.

Permalänk
Medlem

Du vet att du inte kan skriva in alla tal på engång i ditt program (ser ut som att du har gjort det i skrämdumpen, rätt mig gärna). Just nu är det byggt att ta in X tal i taget.

Permalänk
Medlem
Skrivet av Headman:

Jag har ej gjort några förändringar förutom ersatt loopen med Chigurhs förslag. Dock så blir det såhär:

http://img829.imageshack.us/img829/5056/49963447.png

Notera att jag även har x < 6 inte fem. Så ignorera skriv fem nummer texten.. för det är programerat för 6! Dock funkar det som sagt ej.

cin >> aray[x] - läser in ett tal, inte en siffra. I fallet ovan är alltså 123456 ett tal. Du kan separera tal genom exempelvis nyrad eller mellanslag.

Permalänk
Medlem

Vill du att det ska fungera som du tidigare tänkt ("123456" blir sex tal) kan du läsa in till en variabel av char-typ istället. Detta ger dig dock tecknet motsvarande varje siffra, så vill du utföra beräkningar måste du beräkna varje tal utifrån dess ASCII-kod.

Visa signatur

Vill du ha svar? Citera mig gärna.

Permalänk
Medlem

mm förklarar saken.. tack så mycket
funkar nu