45 / 1 / 1
Регистрация: 26.10.2011
Сообщений: 115
1

Дана строка символов. Найти сумму цифр, встречающихся в строке.

25.04.2012, 16:37. Показов 14052. Ответов 12
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Дана строка символов. Найти сумму цифр, встречающихся в строке.
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
25.04.2012, 16:37
Ответы с готовыми решениями:

Найти произведение цифр, встречающихся в строке символов где группа символов между пробелами считается словом.
Дана строка символов до точки. Группа символов в ней между пробелами считается словом Найти...

Найти сумму цифр, встречающихся в строке
Нужно найти сумму цифр встречающихся в строке.

Найти сумму цифр, встречающихся в строке
Вот задача, есть код на Delphi, помогите его преобразовать чтобы он работал на c# Дана строка...

Дана строка символов. В данной строке подсчитать количество цифр, предшествующих первому символу '!'
Дана строка символов. В данной строке подсчитать количество цифр, предшествующих первому символу...

12
Заблокирован
Автор FAQ
25.04.2012, 16:42 2
BOT, язык С или С++?
0
600 / 568 / 104
Регистрация: 07.11.2010
Сообщений: 2,004
25.04.2012, 16:43 3
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
#include <algorithm>
#include <iostream>
#include <string>
 
using namespace std;
 
int main(int argc, char *argv[])
{
    string line;
    cout << "Please input line:\n";
    getline(cin, line);
 
    int s = 0;
    for_each(line.begin(), line.end(), [&s](char c)
    {
        if (isdigit(c))
        {
            s += (c - '0');
        }
    });
 
    cout << "Sum is : " << s << endl;
    return 0;
}
0
45 / 1 / 1
Регистрация: 26.10.2011
Сообщений: 115
25.04.2012, 16:43  [ТС] 4
С просто
0
Higher
1953 / 1219 / 120
Регистрация: 02.05.2010
Сообщений: 2,925
Записей в блоге: 2
25.04.2012, 16:45 5
C
1
2
3
4
5
6
7
8
9
10
#include <stdio.h>
#include <ctype.h>
 
int main()
{
    int sum_of_digits = 0;
    char str[] = "1 2/3h4hhl4562jk0";
    for (char *p = str; *p; sum_of_digits += (*p - '0') * !!isdigit(*p), ++p);
    printf("%d\n", sum_of_digits);
}
0
Заблокирован
Автор FAQ
25.04.2012, 16:48 6
Вот простенько на плюсах
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
#include <iostream>
using namespace std;
 
int main()
{
    int i, sum;
    char str[1024] = {0};//Íàøà ñòðîêà ñèìâîëîâ
    cout<<"Enter text (less than 1024 chars) : ";
    cin.getline(str,1023);
    cout<<"Digits in string : ";
    for(sum = (i = 0); str[i] != '\0'; i++)
    {
        if('0' <= str[i] && str[i] <= '9')
        {
            sum += (str[i] - 48);
            cout<<str[i];
        }
    }
    cout<<"\nSum : "<<sum<<endl;
    system("pause");
    return 0;
}
Миниатюры
Дана строка символов. Найти сумму цифр, встречающихся в строке.  
2
Заблокирован
Автор FAQ
25.04.2012, 16:51 7
Цитата Сообщение от BOT Посмотреть сообщение
С просто
C
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
#include <stdio.h>
#include <stdlib.h>
 
int main()
{
    int i, sum;
    char str[1024] = {0};//Íàøà ñòðîêà ñèìâîëîâ
    printf("Enter text (less than 1024 chars) : ");
    scanf("%1023[^\n]",str);
    printf("Digits in string : ");
    for(sum = (i = 0); str[i] != '\0'; i++)
    {
        if('0' <= str[i] && str[i] <= '9')
        {
            sum += (str[i] - 48);
            printf("%c",str[i]);
        }
    }
    printf("\nSum : %d\n",sum);
    system("pause");
    return 0;
}
- функционал аналогичен функционалу выше
0
63 / 58 / 14
Регистрация: 14.12.2011
Сообщений: 193
11.05.2012, 20:07 8
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
#include <ctype.h>
#include <stdio.h>
 
#define SIZE 40
int main()
{
    char stroka[SIZE] = "He11re2goe3s s0me d2g2tal3";
    char *ptr = stroka;
 
    int sum = 0;
 
    while(*(ptr++))
    {
        if(isdigit(*ptr)) sum += (int)*ptr - 48;
 
    }
    printf("%d", sum);
    return 0;
}
1
go
Эксперт С++
3646 / 1378 / 243
Регистрация: 16.04.2009
Сообщений: 4,526
11.05.2012, 21:08 9
Dr.Urban, код не првильно работает даже для Вашей строки (я 15 насчитал). Но даже если я ошибся, то проверяйте для вот такой строки
C
1
char stroka[SIZE] = "9He11re2goe3s s0me d2g2tal3";
0
63 / 58 / 14
Регистрация: 14.12.2011
Сообщений: 193
11.05.2012, 21:18 10
"He11re2goe3s s0me d2g2tal3"; не единица а L =)

да ошибка при чтении первой цифри..


C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
#include <ctype.h>
#include <stdio.h>
 
#define SIZE 40
int main()
{
    char stroka[SIZE] = "9He11re2goe3s s0me d2g2tal3";
    char *ptr = stroka;
 
    int sum = 0;
 
    while(*(ptr))
    {
        if(isdigit(*ptr)) sum += (int)*ptr - 48;
        ptr++;
    }
    printf("%d", sum);
    return 0;
}
2
go
Эксперт С++
3646 / 1378 / 243
Регистрация: 16.04.2009
Сообщений: 4,526
11.05.2012, 21:23 11
Цитата Сообщение от Dr.Urban Посмотреть сообщение
Код C++
На плюсах целесообразно использовать библиотек STL для такой задачи. Но так как это раздел Си, то вот код
C
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
#include <stdio.h>
#include <string.h>
#include <ctype.h>
 
char* search(char* const s, int (*fun)(int) ) 
{
   while ( *s++ )
     if ( fun(*(s - 1)) )
       return s - 1;
       
   return NULL; 
}
    
int main(void)
{
   char s[] = "1 23H4ello 0 world5";
   char *c;
   size_t total = 0; 
  
   for ( c = search(s, isdigit) ; c ; c = search(c + 1, isdigit) )
     total += *c - '0';
    
   printf("%u\n", total);
}
http://liveworkspace.org/code/... 5d8941766b
1
63 / 58 / 14
Регистрация: 14.12.2011
Сообщений: 193
11.05.2012, 21:35 12
Зачем усложнять? Не понимаю чем так лучше? раздел же для новичков - зачем мутить воду с бесполезным здесь указателем на функцию и фором на километр ? Им не нужен идеальный код, а то что можно CTRL+C -> CTRL+V -> compile -> run -> forget

Кстати о хорошем тоне - функция должна бы возвращать значение.
1
go
11.05.2012, 21:40     Дана строка символов. Найти сумму цифр, встречающихся в строке.
  #13

Не по теме:

Цитата Сообщение от Dr.Urban Посмотреть сообщение
Кстати о хорошем тоне - функция должна бы возвращать значение.
Это программа для тестирования, т.е. писалось "на скорую руку" . Ошибки в этом нет. Писать return 0 в main функции это скорее всего стиль, чем наодобность. Ведь компилятор сам об этом должен позаботиться. Благо в стандарте это есть. :)

1
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
11.05.2012, 21:40

Дана строка, состоящая из букв и цифр. Найти сумму всех цифр, входящих в эту строку.
Дана строка, состоящая из букв и цифр. Найти сумму всех цифр, входящих в эту строку. if s in then...

Дана строка символов S. Удалите из нее все цифры или выдайте сообщение,что цифр в строке нет
Помогите,пожалуйста,написать программу через Паскаль.%-):scratch:Заранее спасибо):help::thank_you:

Дана строка символов S. Удалите из нее все цифры или выдайте сообщение, что цифр в строке нет.
Дана строка символов S. Удалите из нее все цифры или выдайте сообщение, что цифр в строке нет.

Дана строка, возможно, содержащая пробелы. Найдите все цифры в этой строке и вычислите сумму этих цифр
ЗАДАНИЕ: Дана строка, возможно, содержащая пробелы. Найдите все цифры в этой строке и вычислите...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
13
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2023, CyberForum.ru