C Tabelle zum Umrechnen zwischen PS<->kW

Status
Für weitere Antworten geschlossen.

[R00T]Bear

Newbie
Registriert
Okt. 2010
Beiträge
5
Hallo Zusammen,

könnte sich bitte jemand erbarmen und mir den fertigen Code (in C) zu folgender Aufgabe liefern:

Entwickeln Sie ein Programm, das eine Tabelle zur Umrechnung zwischen PS und kW auf dem Bildschirm ausgibt. Die Ausgabe soll genau die folgende Form aufweisen:

+-------------+
| PS |.....kW |
+-------------+
|...1 |.....0.7 |
|...2 |.....1.5 |
|...3 |.....2.2 |
|...4 |.....2.9 |
|...5 |.....3.7 |
|...6 |.....4.4 |
|...7 |.....5.2 |
|...8 |.....5.9 |
|...9 |.....6.6 |
| 10 |.....7.4 |
| 11 |.....8.1 |
| 12 |.....8.8 |
| 13 |.....9.6 |
| 14 |...10.3 |
| 15 |...11.0 |
| 16 |...11.8 |
| 17 |...12.5 |
| 18 |...13.2 |
| 19 |...14.0 |
| 20 |...14.7 |
+-------------+

Hinweis: Damit die kW-Werte in der Tabelle mit 1 Nachkommastelle und rechtsbündig ausgerichtet erscheinen, müssen Sie in der printf()-Anweisung ein Formatelement der Form "%6.1lf" (6 Stellen insgesamt, 1 Nachkommastelle, kein Exponent) für den Typ double einsetzen. Für die Schleifensteuerung der Zählschleife (1 ... 20) sollten Sie grundsätzlich eine int-Variable einsetzen, weil dann keine Rundungsfehler entstehen.

Umgerechnet werden soll mit kW = PS * 0.736

Vollständigkeit halber hier die Lösung:

#include <stdio.h>
#include <stdlib.h>

int main(void)
{
int a=0,i=0;
float b=0;

printf("+----------+\n");
printf("|PS | kW |\n");
printf("+----------+\n");


for(;i<20;i++)
{
a++;
b=a;
b=b*0.736;
printf("|%i | %.1f |\n", a,b);
}

printf("+----------+\n");
scanf("%f", &b);
system("PAUSE");
return 0;
}

Danke an Adam Gontier & kuddlmuddl für die Hilfe - case solved.
 
Zuletzt bearbeitet: (Lösung hinzugefügt)
Öhm.. Im Hinweis steht doch quasi schon alles oO

Hattest du gar keine Vorlesung/keinen Unterricht darin oder so?

edit:
Code:
hier stand ein vollwertiger Quellcode

edit²: die Werte in deiner Tabelle sind sogar falsch gerundet.. :D

edit³: achja, und willkommen im Forum. Hab ich in meinem Eifer gar nicht gesehen - jetzt ärgere ich mich, direkt die Lösung anstatt Hilfestellung geliefert zu haben.. <.<
 
Zuletzt bearbeitet:
Hehe die Aufgabenstellung kenn ich irgendwoher. Studierst du zufällig an der FH in Nürnberg?
 
Glaube nicht, dass das hier jemand kann :|
Ne, mal im Ernst: Is wahrscheinlich eine Aufgabe für die Schule wie es aussieht und sowas wird dir keiner machen, in einem seriösen Forum. Und Tips dazu kann mman dir auch kaum geben, da ja schon alles dasteht. Und wenn du es wirklich brauchst, wirst du auch schwierigere Sachen in Zukunft selber machen und da scheint es mir ein geeigneter Zeitpunkt hier und jetzt mit dem Selbermachen anzufangen.
 
Mit einer simplen for-Schleife geht das wunderbar.

Hehe die Aufgabenstellung kenn ich irgendwoher. Studierst du zufällig an der FH in Nürnberg?
Um diese Aufgabe bewältigen zu können braucht man kein Studium. ;) :lol:

E:
Ich habs ma auf die Schnelle gemacht.
 

Anhänge

  • Neuer Ordner.rar
    4,5 KB · Aufrufe: 245
Zuletzt bearbeitet:
@Gutgolf: Und der TE würde immer ein "noob" bleiben, wenn wir ihm die Hausaufgaben machen würden!

Gruß
BlackMark
 
Damit:
Code:
for (int i = 0; i < 10; i++) {
  printf("i = %d", i);
}
Solltest du eigtl. allein bis zum Ende kommen
 
Danke Adam Gontier, das hilft schon sehr!
Ich habe bisher aber immer mit main(void) gearbeitet.... wie würde es so aussehen?

Der Rest sollte sich schämen den Thread vollzuspammen, wenn ihr Beiträge sammeln wollt, geht wo anders hin...
 
Beim Vergleich der obigen Lösung mit meiner Variante ist mir aufgefallen, dass bei der for-Schleife nach dem "Klammer-Auf" gleich ein Strichpunkt kommt - dass habe ich so noch nicht gesehen, bedeutet das, dass nichts initialisiert werden soll?
 
bedeutet das, dass nichts initialisiert werden soll?
ja

die ps-Zahl nicht direkt als Zählvariable zu benutzen ist sehr unschön, überflüssig kompliziert und ermöglicht dumme fehler.
stell dir vor du willst die tabelle in 5er schritten und änderst daher "for(;i<20;i++)" zu "for(;i<20;i=i+5)" - dann gibts komische Ergebnisse
 
Status
Für weitere Antworten geschlossen.
Zurück
Oben