Форум программистов, компьютерный форум CyberForum.ru

С++ для начинающих

Войти
Регистрация
Восстановить пароль
 
ZerkaloTMY
0 / 0 / 0
Регистрация: 12.02.2013
Сообщений: 68
#1

Как сложить первую и вторую части переменных? - C++

14.02.2013, 20:31. Просмотров 518. Ответов 12
Метки нет (Все метки)

Здравствуйте, уважаемые форумчане.

Допустим есть у меня в переменной некое четырехзначное значение, например, 1981 и надо сложить его первую и вторую части, тобишь 19 + 81, как это сделать?

Благодарю всех заранее.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
14.02.2013, 20:31
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Как сложить первую и вторую части переменных? (C++):

Pascal -> С++ (определить вторую цифру дробной части частного от деления суммы первой и третьей цифр трехзначного числа на вторую цифру этого числа) - C++
Составить программу. выполняющую операции целочисленной арифметики Определить вторую цифру дробной части частного от деления суммы...

Умножить первую матрицу на вторую - C++
2 матрицы считываются с файла и выводятся, а вот умножение их почему то не работает, помогите #include "stdafx.h" #include <iostream> ...

Скопировать первую матрицу во вторую - C++
Здравствуйте,помогите с написанием кода. Задача в том что,создаем первый двумерный массив из введеных значений M и K,заполняем некоторыми...

Поменять в числе первую и вторую цифры - C++
3) Дано трёхзначное целое число А. Поменять в этом числе первую и вторую цифры.

Поменять местами первую и вторую половины массива - C++
Дан массив а, состоящий из 10 элементов. Поменять местами первую и вторую его половины

Поменять местами первую и вторую половину массива. - C++
Помогите решить задачки!!! 1) Дан массив размера n. Поменять местами первую и вторую половину массива. 2)Дана матрица размера mхn.Найти...

Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
3BEPb_TyTa
18 / 18 / 1
Регистрация: 18.05.2010
Сообщений: 83
14.02.2013, 20:46 #2
C++
1
2
int x = 1980;
int ans = x / 100 + x % 100;
Ev[G]eN
Эксперт С++
5097 / 1535 / 381
Регистрация: 23.01.2011
Сообщений: 3,148
14.02.2013, 20:51 #3
C++
1
2
3
4
5
6
7
8
9
10
11
12
#include <iostream>
 
int main()
{
    int num = 1981;
    std::cout << num << std::endl;
 
    int res = (num / 100) + (num % 100);
    std::cout << (num / 100) << " + " << (num % 100) << " = " << res;
 
    return 0;
}
xtorne21st
интересующийся
304 / 275 / 19
Регистрация: 25.09.2010
Сообщений: 1,056
14.02.2013, 21:04 #4
Цитата Сообщение от ZerkaloTMY Посмотреть сообщение
Допустим есть у меня в переменной некое четырехзначное значение, например, 1981 и надо сложить его первую и вторую части, тобишь 19 + 81, как это сделать?
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
25
26
27
28
29
30
31
#include <iostream>
#include <cstdlib>
#include <cstdio>
#include <cstring>
 
int main()
{
    char sval[80];
    int ival;
 
    std::cout << "Enter value: ";
    std::cin >> ival;
 
    sprintf(sval, "%d", ival); // Запишем переменную ival в массив sval.
 
    int mid = strlen(sval)/2; // Найдём середину.
 
    int fv, sv;
    fv = sv = 0;
 
    // Найдём первую часть.
    for (int i = 0; i != mid; ++i)
        fv = fv * 10 + (sval[i] - '0');
    // Найдём вторую часть.
    for (int i = mid; i != (int)strlen(sval); ++i)
        sv = sv * 10 + (sval[i] - '0');
 
    std::cout << "Sum = " << fv + sv << std::endl;
 
    return 0;
}
Добавлено через 2 минуты
Подходить не только под четырёхзначные значения
ZerkaloTMY
0 / 0 / 0
Регистрация: 12.02.2013
Сообщений: 68
14.02.2013, 21:21  [ТС] #5
Спасибо, а что если мне нужно сложить 1981 так: 1 + 9 + 8 + 1 ?

xtorne21st, я только только начинаю при чем в билдер 6, на сколько я понимаю, код любезно предоставленный Вами предназначен не для билдера... короче, не супер понятно. %)

Добавлено через 3 минуты
xtorne21st, не, вроде начинаю вьежать, щас попробую))))

Добавлено через 3 минуты
xtorne21st, вроде вьезд в суть темы осуществился) но теперь надо сложить все цифры четырехзначного числа. %)
xtorne21st
интересующийся
304 / 275 / 19
Регистрация: 25.09.2010
Сообщений: 1,056
14.02.2013, 21:33 #6
Цитата Сообщение от ZerkaloTMY Посмотреть сообщение
xtorne21st, я только только начинаю при чем в билдер 6, на сколько я понимаю, код любезно предоставленный Вами предназначен не для билдера... короче, не супер понятно. %)
Код предназначен для стандарта С++

Добавлено через 55 секунд
Цитата Сообщение от ZerkaloTMY Посмотреть сообщение
xtorne21st, вроде вьезд в суть темы осуществился) но теперь надо сложить все цифры четырехзначного числа. %)
Это ещё проще
ZerkaloTMY
0 / 0 / 0
Регистрация: 12.02.2013
Сообщений: 68
14.02.2013, 21:34  [ТС] #7
xtorne21st, не будете ли столь любезны чтобы помочь мне со следующей задачкой? (1 + 9 + 8 + 1)
xtorne21st
интересующийся
304 / 275 / 19
Регистрация: 25.09.2010
Сообщений: 1,056
14.02.2013, 21:39 #8
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
#include <iostream>
#include <cstdio>
#include <cstring>
 
int main()
{
    char sval[80];
    int ival;
 
    std::cout << "Enter value: ";
    std::cin >> ival;
 
    sprintf(sval, "%d", ival); // Запишем переменную ival в массив sval.
 
    int sum = 0;
 
    for (int i = 0; i != (int)strlen(sval); ++i)
        sum += sval[i] - '0';
 
    std::cout << "Sum = " << sum << std::endl;
 
    return 0;
}
Добавлено через 1 минуту
Bash
1
2
3
4
5
6
7
ilyuha21st@coldshoot:~/projects$ ./prog
Enter value: 456
Sum = 15
ilyuha21st@coldshoot:~/projects$ ./prog
Enter value: 1981
Sum = 19
ilyuha21st@coldshoot:~/projects$
Ev[G]eN
Эксперт С++
5097 / 1535 / 381
Регистрация: 23.01.2011
Сообщений: 3,148
14.02.2013, 21:44 #9
Цитата Сообщение от ZerkaloTMY Посмотреть сообщение
1 + 9 + 8 + 1 ?
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
#include <iostream>
 
int main ()
{
    int num = 1981;
    int res = 0;
    while (num) {
        res += num % 10;
        num /= 10;
    }
    std::cout << res << std::endl;
 
}
xtorne21st
интересующийся
304 / 275 / 19
Регистрация: 25.09.2010
Сообщений: 1,056
14.02.2013, 21:47 #10
Или так
ZerkaloTMY
0 / 0 / 0
Регистрация: 12.02.2013
Сообщений: 68
14.02.2013, 22:07  [ТС] #11
xtorne21st, теперь билдер ругается слеующим образом:

call to undefined function 'sprintf'

Добавлено через 17 минут
Ev[G]eN, вот Ваше решение помогло, благодарю великодушно.
Nixy
ComfyMobile
400 / 281 / 8
Регистрация: 24.07.2012
Сообщений: 916
14.02.2013, 22:11 #12
Цитата Сообщение от ZerkaloTMY Посмотреть сообщение
call to undefined function 'sprintf'
опечатка s уберите
xtorne21st
интересующийся
304 / 275 / 19
Регистрация: 25.09.2010
Сообщений: 1,056
14.02.2013, 23:23 #13
Цитата Сообщение от Nixy Посмотреть сообщение
опечатка s уберите
Нет никакой опечатки. У вас просто старая версия компилятора, которая не поддерживает функционал С++11

Добавлено через 1 минуту
http://www.cplusplus.com/reference/cstdio/sprintf/

Добавлено через 1 минуту
Bilder imho outofday
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
14.02.2013, 23:23
Привет! Вот еще темы с ответами:

Отсортировать первую половину массива по возрастанию, а вторую по убыванию - C++
Дан массив из четного числа элементов. Отсортировать первую половину этого массива по возрастанию, а вторую по убыванию. Как мне решить эту...

Отсортировать первую половину массива по возрастанию, а вторую по убыванию - C++
Программа не работает, помогите найти ошибку #include &lt;cstdlib&gt; #include &lt;iostream&gt; using namespace std; int irand(int a,int b)...

Создать матрицу и поменять первую и вторую строки местами - C++
в массиве создать матрицу и поменять первую и вторую строки местами что делаю не так? #include &lt;iostream&gt; #include &lt;cmath&gt; using...

В тексте поменять местами первую и вторую половины каждого слова - C++
Добрый день. Есть задачка: В тексте поменять местами первую и вторую половины каждого слова. Все слова в тексте состоят из четного числа...


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

Или воспользуйтесь поиском по форуму:
Yandex
Объявления
14.02.2013, 23:23
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru