Hier ist mein Code:Mit printf und scanf-Funktionen für die Doppel in C
#include <stdio.h>
int main (void)
{
double itemCost;
double paidMoney;
int changeDue;
printf("How much does the item cost: ");
scanf("%lf", itemCost);
printf("How much did the coustomer pay: ");
scanf("%lf", paidMoney);
changeDue = ((itemCost - paidMoney) * 100);
printf("Change due in pennies is: %i", changeDue);
}
Das Programm wird eine einfache Eingaben wie 9,5, die 9,50 £ deshalb haben repräsentiert ich doppelt bin mit meinen Werten zu speichern. Auch printf und scanf fördert floats zu doubles, so dass es nicht wirklich wichtig ist.
Wenn jedoch mit gcc kompilieren, erhalte ich eine Fehlermeldung sagen:
cashReturn.c:10:15: warning: format specifies type 'double *' but the argument has type 'double' [-Wformat]
Was bedeuten diese Fehler bedeuten und warum es Aufspringen?
Sie brauchen einen Zeiger auf übergeben, wo Sie den analysierten Wert wollen gespeichert: 'scanf ('% lf', & itemCost)'. andernfalls übergibt man den VALUE-Wert in diesem Varable, der zufälliger Müll sein wird, weil er nur deklariert, nicht initialisiert wurde. –
Hinweis: besser zu runden als truncate: 'int changeDue = rund ((itemCost - paidMoney) * 100);' Andere Verbesserungen ebenfalls möglich. – chux