ich möchte gerne die Summe aller Ziffern (vor dem komma) einer double Variblen
berechnen.
ich habe bis jetzt das hier:
#include <stdio.h>
#include <string.h>
#include <stdlib.h>
main() {
double a=933263.000;
char value[10];
int i=0, summe=0;
sprintf(value,"%.0lf",a);
while (i < strlen(value)) {
printf("\n%c",value[i]);
summe = summe + atoi(value[i]);
i++;
}
printf("\n%i",summe);
}
Das Problem liegt in der Zeile mit atoi, beim kompilieren bekomme ich diese Meldung
test.c: In Funktion »main«:
test.c:16: Warnung: Übergabe des Arguments 1 von »atoi« erzeugt Zeiger von Ganzzahl ohne Typkonvertierung
/usr/include/stdlib.h:148: Anmerkung: expected »const char *« but argument is of type »char«
das liegt ja daran, das das Argument von atoi (value
) nicht konstant ist in der Schleife, oder?
Bin noch noch Anfänger 😉
wie könnte mand as denn sonst machen? Ohne die Umwandlung würde er ja die summe der ASCII Codes berechnen.
p.s.
habe es auch schon mit sscanf probiert, aber das haut auch nicht hin...
also so dann
#include <stdio.h>
#include <string.h>
#include <stdlib.h>
main() {
double a=933263.000;
char value[10];
int i=0, summe=0, temp;
sprintf(value,"%.0lf",a);
while (i < strlen(value)) {
printf("\n%c",value[i]);
sscanf(value[i], "%i", &temp);
summe += temp;
i++;
}
printf("\n%i",summe);
}