Gå til innhold

Hvorfor er dette in infinite loop?


Gjest Slettet-lQle7N2M

Anbefalte innlegg

Gjest Slettet-lQle7N2M

Jeg holder pa med en C++ bok na og jeg har noe problemer med et av eksamplene.

Det som er mening at skal skje ar at du skiver in et tall og programmet teller opp til det tallet.

Eksempel:

Input: 6

Output: 1 2 3 4 5 6

 

Men istedet teller bare programmet oppover i det uendelige, jeg klarer bare ikke a finne feilen i koden. Kan noe her hjelpe meg.

 

 
#include "stdafx.h"
#include <iostream>
using namespace std;

int main() {
int i, n;

// Get a number from the keyboard and initialize i.

cout << "enter a number and press ENTER: ";
cin >> n;
i = 1;
while (1 <= n) {			 // While i less then or equal to n.
	cout << i << " ";	// Print i,
	i = i+1;
}

return 0;
}

Lenke til kommentar
Videoannonse
Annonse

Jeg har ofte sett folk skrive f.eks.

 

if(NULL == (fp = fopen("Hei.fil", "rb")))

istedet for å gjøre det på den mer logiske måten

if((fp = fopen("hei.fil", "rb")) == NULL)

kanskje noen bare begynner å krølle med paranteser da...

 

Aldri helt forstått hvorfor...

 

Men anyways tror jeg at jeg heller hadde brukt en for løkke her

for(int i = 1; i <= n; i++)
 cout << i << " ";

 

Og hvis du bruker en while løkke, kan du bruke++ så slipper du en ekstra linje

 

while(i++ <= n)
 cout << i << " ";

Lenke til kommentar
if(NULL == (fp = fopen("Hei.fil", "rb")))

istedet for å gjøre det på den mer logiske måten

if((fp = fopen("hei.fil", "rb")) == NULL)

kanskje noen bare begynner å krølle med paranteser da...

Det er i tilfelle man skriver feil, og bruker = istedenfor ==. Hvis man gjør det på den først måten får man en feilmelding hvis man gjør feil, på den andre måten kompileres programmet, men det gjør ikke det du vil!
Lenke til kommentar

Opprett en konto eller logg inn for å kommentere

Du må være et medlem for å kunne skrive en kommentar

Opprett konto

Det er enkelt å melde seg inn for å starte en ny konto!

Start en konto

Logg inn

Har du allerede en konto? Logg inn her.

Logg inn nå
×
×
  • Opprett ny...