Verständnisrobleme

M

mus

Hallo zusammen. Ich habe erst vor kurzen angefangen mit c++ zu programmieren. Ich bekamm jetzt neulich eine Aufgabe die ich lösen sollte. Ich sollte (ohne es auszuprobieren) werte aus einem programm herausfinden.

#include <stdio.h>

int pruefzahl(char*string)
{
unsigned int i=0, n=0;
if(string[0] == '\0')
return (0);
while (string !='\0')
{
n += string[i++];
}
return (n/i);
}

void main(void)
{
char text[100];
scanf("%s", text);
printf("%i\n", pruefzahl( text ));
}


Bei der Eingabe 0 ist die Ausgabe 48.

Jedoch weiß ich leider nicht warum. kann mir jemand helfen?
 
Hi mus,

erstmal willkommen im Forum!!! :)

normaler weise mögen wir es hier nicht so sehr wenn wir Aufgaben lösen sollen, welche man selbst lösen soll, denn damit geht der Sinn der Aufgabe verloren. Doch es ist dein erster Beitrag deshalb mach ich eine Ausnahme und helfe ich dir gerne!

n += string[i++];
hier werden die zahlen zusammen gerechnet z.B. 100-> 1+0+0.

return (n/i);
hiermit wird das Ergebnis mit der Länge der der Zahl geteilt un zurückgegeben,. 100->3
1/3

printf %s müsste den string in eine Zahl umwandeln. 0 -> 48

so müsste es eigentlich sein.

gruß rdg ;)
 
Zuletzt bearbeitet:

Ähnliche Themen

C Code Hilfe!!! gesucht bei Dezimalzahl in Binärzahl for loop

"non blocking console input" wieder rückgängig machen?

Unix Webserver mit HTML Seite erstellen

String auf Konsole ausgeben

Port generieren, wenn nicht dann

Zurück
Oben