Во входной строке записаны целые числа через запятую, найти их сумму - C (СИ)
Формулировка задачи:
Не понимаю как работать с строками...
У меня есть задача...
Во входной строке записаны целые числа через запятую. Найдите их сумму.
ВХОДНЫЕ ДАННЫЕ
Программа получает на вход строку, содержащую цифры, знаки +/- и запятые. Необходимо разбить эту строку по запятым на числа и вычислить их сумму.
Длина строки не превосходит 1000 символов. Строка содержит хотя бы одно число, начинается и заканчивается не с запятой, никакие две запятые не идут подряд. Между двумя соседними запятыми записано корректное целое число, не превосходящее по модулю 106106, которое может начинаться со знака "+" или "-".
Ввод: 12,-5,+8
Вывод: 15
Получилось только так... но это неправильно (условие задачи совсем другое)#include <iostream>
#include <string>
using namespace std;
int main(){
string str;
int sum = 0;
cin >> str;
cout << endl;
for(int i = 0; i < str.length(); i++){
if (str[i] == ',')
{
i++;
}
sum += (int)str[i] - 48;
}
cout << sum << endl;
return 0;
}Решение задачи: «Во входной строке записаны целые числа через запятую, найти их сумму»
textual
Листинг программы
#include<stdio.h>
int main(void)
{
int x,sum=0;
do
{
scanf("%d",&x);
sum+=x;
}while(getchar()!='\n');
printf("%d\n",sum);
return 0;
}
Объяснение кода листинга программы
- Подключение стандартной библиотеки ввода-вывода
- Объявление переменных: x (целое число для хранения значения числа с плавающей точкой), sum (целое число для хранения суммы чисел), и sum_temp (временная переменная для промежуточных вычислений)
- Ввод чисел с клавиатуры и сохранение их в массив
- Вычисление суммы чисел в массиве
- Вывод суммы на экран
- Вернуть 0 для завершения программы