+1 Daumen
686 Aufrufe

Aufgabe:

Schreiben Sie ein Programm, das den äquivalenten Widerstand des folgenden Schreibens berechnet;
Serienschaltung.

Wir gehen davon aus, dass R1, R2, R3 und R4 einen ganzzahligen Widerstand aufweisen.
Nach Eingabe der vier Werte sollte das Programm das Ergebnis arithmetisch gerundet auf die nächste ganze Zahl ausgeben.

Sie können für diese Übung davon ausgehen, dass die eingebaute ganzzahlige Division auf Null alle Operanden rundet.
Die Verwendung von "float point arithmetic" ist nicht erlaubt (Sie dürfen keinen "Float of double" verwenden.


Anmerkung:
Um die Aufgabe zu erleichtern, kannst du die Aufgabe konzeptionell in Teilaufgaben unterteilen. Beginnen Sie zum Beispiel mit der Berechnung der seriellen Widerstände R12 und R34. Lösen Sie die Aufgabe zunächst naiv mit Standardrundung und überlegen Sie dann, wie Sie die arithmetische Rundung durchführen können.


Problem:
Ich kann keine Zahl der Form XX.XX eingeben, wenn ich das tue, kommt sofort das Gesamtresultat, auch wenn es die restlichen gar nicht mit einberechnet, und ich weiss nicht wie ich Zahlen eingeben kann, sodass es am Schluss ein gerundetes Resultat anzeigt.

Mein Code:

#include <iostream>

using namespace std;

int main() {
 
  int r1 = 0;
  int r2 = 0;
  int r3 = 0;
  int r4 = 0;
  int total = 0;
 
  // Start the programm.
  cout << "Please enter your resistances in the following form: XX.XX. There are four resistances in total. Enter one by one. Press enter when you are ready to begin. " << endl;
 
  // Input
  cout << "Please enter resistance number 1: " << endl;
  cin >> r1;
 
  cout << "Please enter resistance number 2: " << endl;
  cin >> r2;
 
  cout << "Please enter resistance number 3: " << endl;
  cin >> r3;
 
  cout << "Please enter resistance number 4: " << endl;
  cin >> r4;
 
 
  // Compute
 
  total = r1 + r2 + r3 + r4;
  cout << "The total resisstance in the circuit is: " << total << endl;
 
  return 0;
}
Avatar von

Was genau bedeutet int hier?

int r1 = 0;

Falls "integer" , kannst du keine Kommazahlen eingeben.

1 Antwort

0 Daumen

Mit Eingabe von XX.XX meinst du wahrscheinlich eine Dezimalzahl bzw. Kommazahl.

Du hast jedoch als Eingabe int definiert und damit wird auch ein Integer (eine Ganzzahl) erwartet. Das wird der Grund sein, weshalb das Programm die anderen Eingaben überspringt.

Ändere die int zu float und es funktioniert:

float r1 = 0;
float r2 = 0;
float r3 = 0;
float r4 = 0;
float total = 0;

Ausprobieren (Klick auf "run"): https://repl.it/@kaibox99/stacklounge-3235

Avatar von

Ein anderes Problem?

Stell deine Frage

Willkommen bei der Stacklounge! Stell deine Frage einfach und kostenlos

x
Made by a lovely community