Во входной строке записаны целые числа через запятую, найти их сумму - 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;
}

Объяснение кода листинга программы

  1. Подключение стандартной библиотеки ввода-вывода
  2. Объявление переменных: x (целое число для хранения значения числа с плавающей точкой), sum (целое число для хранения суммы чисел), и sum_temp (временная переменная для промежуточных вычислений)
  3. Ввод чисел с клавиатуры и сохранение их в массив
  4. Вычисление суммы чисел в массиве
  5. Вывод суммы на экран
  6. Вернуть 0 для завершения программы

Оцени полезность:

6   голосов , оценка 3.5 из 5
Похожие ответы