Gå til innhold

Hvorfor er dette in infinite loop?


Gjest Slettet-lQle7N2M

Anbefalte innlegg

Gjest Slettet-lQle7N2M
Skrevet

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;
}

Videoannonse
Annonse
Skrevet

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 << " ";

Skrevet
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!

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å
  • Hvem er aktive   0 medlemmer

    • Ingen innloggede medlemmer aktive
×
×
  • Opprett ny...