Вот код:
#include <stdio.h>
#include <stdlib.h>
#include <math.h>
#define BUFFER 512
void getCount(int *numCount, int *count);
int sumNumbers(int *numSum, int *sumNumOutput);
int main(void) {
printf("Enter a number greater than 0: ");
char string[BUFFER];
int numMain = 0;
int countMain = 0;
int sumNumMain = 0;
fgets(string, BUFFER, stdin); // gets user input and stores it in string
numMain = atoi(string); // converts the string to numerical and sets sum to the value. If there is a letter in the string, it will be zero.
int numCountMain = numMain;
int numSumNum = numMain;
getCount(&numCountMain, &countMain); // gets how many integers there are
sumNumbers(&numSumNum, &sumNumMain);
printf("Count: %d\n", countMain);
// printf("Sum: %d\n", sumNumMain);
return 0;
}
//shows how many integers were entered
void getCount(int *numCount, int *count){
while(*numCount > 0){
*numCount /= 10;
++*count;
}
return;
}
int sumNumbers(int *numSum, int *sumNumOutput){ // make it so that it isolates a number, then adds it to a universal sum variable
int increment = 1;
int count = 0;
while(*numSum > 0){ // gets the count of the number
while(*numSum > 0){
*numSum /= increment;
++count;
printf("numSum: %d\n",*numSum);
increment *= 10;
}
}
}
Допустим, я поставил 12345 как число.Он отлично подсчитывает количество цифр, но когда он выделяет отдельные цифры с помощью деления, он пропускает третье число.В случае 12345 это будет: 12345 1234 12 0
Я думаю, что это случай инкремента, запущенного amok, но я не могу найти решение для этого.Также я знаю, что когда я это исправлю, это не решит проблему, заключающуюся в том, что я должен выделить отдельные номера.Вот тут-то и начинается приращение, и я знаю, что должен использовать модуль, но если кто-то может помочь мне с этим после того, как я позабочусь об этом, это тоже было бы здорово.
Кроме того, если это не такНе очевидно, что код, который имеет проблему, я предполагаю, это нижние строки.