Gå til innhold

Kommentarer til program for å beregne motstander?


Anbefalte innlegg

#include <iostream>

using namespace std;


// Program for å beregne motstander i serie og parallell.

void main () {

char valg[2]="q";
double motstandsverdi=1, motstandssum;
int antallMotstand=0;
cout << "**********************************************************" << endl <<
		"* Program for å beregne motstander i serie og parallell. *" << endl <<
		"*														*" << endl <<
		"* Skrevet av:											*" << endl <<
		"**********************************************************" << endl << endl;

while (!(valg == "s" || valg == "S" || valg == "P" || valg == "p")) {
cout << "Vil du beregne motstander i serie eller parallell? (S/P) : ";
cin >> valg;
cout << valg << endl;
}
if (valg == "P" || valg == "p") {
  // Parallell
  cout << "Beregning av motstaner i PARALLELL:" << endl << "Skriv inn verdien på hver av motstandene. Avslutt med 0.";
  while (motstandsverdi != 0) {
	antallMotstand++;
	cout << "Skriv inn verdien av motstand nummer " << antallMotstand << " i ohm:   ";
	cin >> motstandsverdi;
	motstandssum = motstandssum + ( 1 / motstandsverdi);
}
  motstandssum = 1 / motstandssum;
  cout << "Summen av de " << antallMotstand << " motstandene er:   " << motstandssum << " ohm.";
}
else if (valg == "S" || valg == "s") {
  // Serie
  cout << "Beregning av motstander i SERIE:" << endl << "Skriv inn verdien på hver av motstandene. Avslutt med 0.";
  while (motstandsverdi != 0) {
	antallMotstand++;
	cout << "Skriv inn verdien av motstand nummer " << antallMotstand << " i ohm:   ";
	cin >> motstandsverdi;
	motstandssum = motstandssum + motstandsverdi;
  }
  cout << "Summen av de " << antallMotstand << "motstandene er:   " << motstandssum << " ohm.";


}

return;
}

 

Programmet mitt kommer ikke lengre enn til S/P-valget og fortsetter å gå i en loop der. Innspill til endringer i programmet?

Lenke til kommentar
Videoannonse
Annonse

Les inn som streng, så slipper du unna med buffer overflow siden du er to bytes på stacken unna et stack smash.

Dessuten kan du sammenligne strenger med konstante strenger på måten du har gjort.

 

Btw @GeirGrusom, strncmp er case-sensitive etter C89/C99, strncasecmp (noen ganger strincmp) er ikke, men denne er ikke en C89/C99 standard, derimot en POSIX standard.

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

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