gpt/2025-10-13/quersumme.c (view raw)
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 |
#include <stdio.h>
#include <stdlib.h>
#include <limits.h>
static unsigned int digitSum(int* n) {
unsigned int num = abs(*n);
unsigned int sum = 0;
while (num != 0) {
sum = sum + num % 10;
num = num/10;
}
return sum;
}
static unsigned int digits (int* n) {
unsigned int num = abs(*n);
unsigned int x, i;
for (x=10, i=1; ; x*=10, i++) {
if (num < x)
return i;
if (x > INT_MAX/10)
return i+1;
}
}
int main() {
int inputNum;
printf("Type a number: \n");
scanf("%d", &inputNum);
printf("Number of digits: %d\nDigit sum: %d\n\n", digits(&inputNum), digitSum(&inputNum));
return 0;
}
|