Найти сумму чисел, записанных в строку через пробел - C (СИ)
Формулировка задачи:
Помогите пожалуйста преобразовать последовательность символов в числовое значение : В строке записаны вещественные числа, которые разделены пробелами. Найти сумму этих чисел.
Решение задачи: «Найти сумму чисел, записанных в строку через пробел»
textual
Листинг программы
#include <stdio.h> int main() { const char str[] = "123.456 789.123 23.32 3.14"; double sum = 0; const char *ptr = str; double value; int n; while (sscanf(ptr, "%lf%n", &value, &n) > 0) { sum += value; ptr += n; } printf("%s\n", str); printf("Sum = %lf\n", sum); }
Объяснение кода листинга программы
В этом коде:
- Объявлена строка
str
, которая содержит несколько чисел, записанных через пробел. - Инициализирована переменная
sum
, которая будет использоваться для хранения суммы чисел. - Объявлен указатель
ptr
, который будет использоваться для чтения чисел из строкиstr
. - Объявлены переменные
value
иn
, которые будут использоваться для хранения прочитанного числа и длины прочитанного числа соответственно. - В цикле
while
происходит чтение чисел из строкиstr
с помощью функцииsscanf
. Функцияsscanf
пытается прочитать число из строки и сохранить его в переменнойvalue
. Если это удалось, то число добавляется к суммеsum
, а указательptr
перемещается на следующую позицию в строке. - После окончания цикла
while
выводится исходная строкаstr
. - Выводится значение суммы
sum
.
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д