Я изучаю язык Си, и у меня возникла проблема, которую я, кажется, не могу решить самостоятельно.
У меня есть простой цикл, в котором я складываю ascii значения всех символов в каждом слове.
char char_array[100];
int lexicographical_values[20];
int i, j = 0;
for( i = 0; i <strlen(char_array); i++) {
if(char_array[i] == ' ')
j++;
lexicographical_values[j] += (int)char_array[i];
}
Тогда, если я выведу массив lexicographic_values в цикле
printf("%d word is: %d \n", i, lexicographical_values[i]);
Я получаю правильные цифры для каждого слова (например: dd = 200 и т. Д.)
Но если я на самом деле смотрю на значение каждого элемента в массиве, я получаю большие числа, которые далеко не верны.
Вопрос в том, как получить правильные значения и как printf получает правильные значения?
Спасибо