Autor |
Nachricht |
MBastieK |
Verfasst am: 06. Nov 2021 15:30 Titel: |
|
schnudl hat Recht. Sie müssen fWert = pow(10, ((float)x)/12); schreiben. Es kommt immer 1.0 raus, weil potenziert mit 0 unendliche Wurzel bedeutet und "immer" zu 1 führt. Und x/12 integer-weise immer 0 rauskommt bei x innerhalb [1,11], d.h. zwischen 1 und 11. Dementsprechend müsste immer 1.0 rauskommen ausser beim letzten, wo 10.0 rauskommt. Zusatz: Oh, habe jetzt erst gesehen, dass Sie schon von selbst die 12 über 12.0F in ein float-Register gepackt haben bzw. eher so jetzt die float-Division nutzen. |
|
|
schnudl |
Verfasst am: 30. Okt 2021 08:34 Titel: |
|
Eine Division zweier int resultiert nicht in float. Was du jetzt noch hast, wissen wir nicht, du musst den Code zeigen. |
|
|
jh8979 |
Verfasst am: 29. Okt 2021 23:13 Titel: |
|
rechnet pow() nicht ganz andere dinge aus, als du eigentlich willst? da bin ich mir nicht sicher... |
|
|
Widerstandberechner |
Verfasst am: 29. Okt 2021 23:11 Titel: |
|
Ok, einen hab ich auch gefunden: 12.0 statt 12 Den zweite finde ich nicht... |
|
|
jh8979 |
|
|
Widerstandsberechner |
Verfasst am: 29. Okt 2021 22:58 Titel: |
|
Finde da nur keinen Fehler... |
|
|
jh8979 |
Verfasst am: 29. Okt 2021 22:51 Titel: Re: Programm ausgeben (C) - Widerstände (E12) |
|
Widerstandsberechner hat Folgendes geschrieben: | fWert = pow(10, x/12);
| Ich würde mal hier gucken... |
|
|
Widerstandsberechner |
Verfasst am: 29. Okt 2021 22:42 Titel: Programm ausgeben (C) - Widerstände (E12) |
|
Meine Frage: Hallo, ich will gerne die Widerstandsdekaden der E12-Reihe in C ausgeben. Diese sollen tabellarisch ausgegeben werden und mit einer Feldweite von 8 sowie einer Nachkommastelle.
Mein Code sieht folgendermaßen aus:
#include <stdio.h> #include <math.h> #include <stdlib.h>
int main(){
int x = 1; int iNummer = 0; float fWert;
for(x=1; x<=12; x++) {
fWert = pow(10, x/12);
iNummer++; printf("\n\tNr: %d\t Widerstand:\t %8.1f", iNummer, fWert);
} }
Der Code wird auch ausgeführt, nur zeigt er bei jedem Widerstand den Wert 1.0 an. Wie komme ich darauf, dass er 1.2, 1.5,.... etc... ausgibt? Wo liegt der Fehler? Was habe ich falsch gemacht?
Meine Ideen: - |
|
|