Найти сумму чисел, записанных в строку через пробел - 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.