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

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

Войти
Регистрация
Восстановить пароль
 
казуист
0 / 0 / 0
Регистрация: 05.01.2016
Сообщений: 22
#1

Функция: получить шестизначное число и проверить, равна ли сумма первых трех цифр сумме последних трех - C++

26.01.2016, 18:45. Просмотров 397. Ответов 6
Метки нет (Все метки)

Написать функцию, которая принимает целое шестизначное число и проверяет равна ли сумма первых трех цифр сумме последних трех цифр(счастливый билет). Функция возвращает истину, если число счастливое (суммы равны) и ложь, если не счастливое (суммы не равны).
Где я допустил ошибки в моем решении?


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 "stdafx.h"
#include <iostream>
using namespace std;
 
bool H (int a1, int a2, int a3, int a4, int a5, int a6);
void main()
{
    setlocale(LC_CTYPE, "rus");
        int n;
    cout << "Введите шестизначное число = ";
    cin >> n;
    cout << H(n) << endl;
}
bool H (int a1, int a2, int a3, int a4, int a5, int a6);
{
    bool x;
    a1 = num / 100000;
    a2 = num / 10000 % 10;
    a3 = num / 1000 % 10;
    a4 = num / 100 % 10;
    a5 = num / 10 % 10;
    a6 = num % 10;
}
    if (a1 + a2 + a3 == a4 + a5 + a6)
        x = 1;//true
    else
        x = 0;//false
    return x;
 
cin.get(); cin.get();
    }
0
Лучшие ответы (1)
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
26.01.2016, 18:45
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Функция: получить шестизначное число и проверить, равна ли сумма первых трех цифр сумме последних трех (C++):

Счастливый билет (сумма первых трех цифр равна сумме последних трех) - C++
Всем привет ! Нужно #include &lt;iostream&gt; #include &lt;string&gt; #include &lt;sstream&gt; using namespace std;

Написать программу: сумма первых трех цифр числа равна сумме его последних трех цифр. - C++
Получить все шестизначные счастливые номера. Счастливым называют такое шестизначное число, для которого сумма его первых трех цифр...

Подсчитать количество "счастливых" шестизначных автобусных билетов(сумма первых трех цифр равна сумме трех последних цифр) - C++
Подсчитать количество &quot;счастливых&quot; шестизначных автобусных билетов, т.е таких, в номерах которых сумма трех первых цифр равна сумме трех...

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

составить линейную программу (сумма двух первых цифр заданного четырёхзначного числа равна сумме двух его последних цифр) - C++
составить линейную программу , печатающую значение true , если указанное высказывание является истинным , и false - в противном случае. ...

Вывести на экран элементы массива, сумма первых двух цифр равна сумме двух последних - C++
//Массив из n четырехзначных натуральных чисел. //Вывести па экран только те, у которых сумма первых двух цифр равна сумме двух...

6
_Valera_
487 / 369 / 94
Регистрация: 27.01.2015
Сообщений: 1,588
26.01.2016, 18:56 #2
мне не нравится твой код. А если бы нужно было сумму 100 найти? Напиши нормальную функцию циклом.

Добавлено через 1 минуту
Цитата Сообщение от казуист Посмотреть сообщение
cout << H(n) << endl;
один параметр

Цитата Сообщение от казуист Посмотреть сообщение
bool H (int a1, int a2, int a3, int a4, int a5, int a6);
а тут?
0
ThePlague
101 / 101 / 61
Регистрация: 30.06.2015
Сообщений: 272
26.01.2016, 18:58 #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 <iostream>
using namespace std;
 
bool foo(int n)
{
    int a1 = n / 100000;
    int a2 = n / 10000 % 10;
    int a3 = n / 1000 % 10;
    int a4 = n / 100 % 10;
    int a5 = n / 10 % 10;
    int a6 = n % 10;
    if ((a1 + a2 + a3) == (a4 + a5 + a6))
        return true;
    else
        return false;
}
int main()
{
    int n;
    cout << "Enter digit = ";
    cin >> n;
    cout << boolalpha << foo(n) << endl;
    return 0;
}
исправил, все работает.
но!!!
ваш код конечно не очень...лучше перепишите через цикл...
1
GbaLog-
Любитель чаепитий
3016 / 1384 / 335
Регистрация: 24.08.2014
Сообщений: 4,908
Записей в блоге: 1
Завершенные тесты: 2
26.01.2016, 19:00 #4
Лучший ответ Сообщение было отмечено автором темы, экспертом или модератором как ответ
казуист,
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>
using namespace std;
 
bool H (int a1, int a2, int a3, int a4, int a5, int a6);
void main() // void неправильно!!! need int
{
setlocale(LC_CTYPE, "rus");
int n;
cout << "Введите шестизначное число = ";
cin >> n;
cout << H(n) << endl; // функция принимает 6 аргументов а вы тут 1 указываете
cin.get(); // вот тут надо!
}
bool H (int a1, int a2, int a3, int a4, int a5, int a6);
{
bool x; // необязательная переменная
a1 = num / 100000;
a2 = num / 10000 % 10;
a3 = num / 1000 % 10;
a4 = num / 100 % 10;
a5 = num / 10 % 10;
a6 = num % 10;
} // Тут функция кончается :facepalm:
if ((a1 + a2 + a3) == (a4 + a5 + a6))
x = 1;//true
else
x = 0;//false
return x;
 
cin.get(); cin.get(); // это ещё зачем?
}
Стыдно должно быть!
Вот как бы я написал.
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
#include <iostream>
using namespace std;
 
bool h(int n) {
    int a[6] = {0};
    for( int i = 5; n; ++i ) {
        a[i] = n%10;
        n /= 10;
    }
    if( (a[0]+a[1]+a[2]) == (a[3]+a[4]+a[5]) ) return true;
    else return false;
}
 
int main() {
    int n;
    cin >> n;
    cout << boolalpha << h(n) << endl;
    cin.get();
    return 0;
}
1
_Valera_
487 / 369 / 94
Регистрация: 27.01.2015
Сообщений: 1,588
26.01.2016, 19:15 #5
makfak,
Цитата Сообщение от makfak Посмотреть сообщение
for( int i = 5; n; ++i ) {
ну и как будет работать цикл?

C++
1
2
3
4
5
6
7
8
9
bool h(int n) {
    int a[6] = {0};
    for( int i = 5; n; --i ) {
        a[i] = n%10;
        n /= 10;
    }
    return  ( (a[0]+a[1]+a[2]) == (a[3]+a[4]+a[5]) ) ;
  
}
0
GbaLog-
Любитель чаепитий
3016 / 1384 / 335
Регистрация: 24.08.2014
Сообщений: 4,908
Записей в блоге: 1
Завершенные тесты: 2
26.01.2016, 19:20 #6
_Valera_, Тьфу блин, под чем я был?
C++
1
for( int i = 0; n && i < 6; ++i )
0
_Valera_
26.01.2016, 19:24     Функция: получить шестизначное число и проверить, равна ли сумма первых трех цифр сумме последних трех
  #7

Не по теме:

Цитата Сообщение от makfak Посмотреть сообщение
_Valera_, Тьфу блин, под чем я был?
бывает.

0
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
26.01.2016, 19:24
Привет! Вот еще темы с ответами:

Найти все четырехзначные числа у которых сумма первых двух цифр равна сумме двух последних - C++
найти все четырехзначные числа у которых сумма первых двух цифр равна сумме двух последних.

определить, совпадают ли суммы первых и последних трех цифр шестизначного числа - C++
вот мой код. компилятор выдаёт ошибку в 4ой строке. не могу понять как исправить.. #include &lt;iostream&gt; using namespace std main(){...

дано четырехзначное число. если сумма первых 2 цифр=сумме 2 последних, написать "yes", иначе "no" - C++
Вот попробовал написать код но ошибку выдает: #include &lt;iostream.h&gt; #include &lt;conio.h&gt; #include &lt;stdlib.h&gt; int main() { ...

Среди чисел найти все, у которых сумма первых двух равна сумме последних двух - C++
Помогите пожалуйста решить задание: среди четырехзначных чисел из интервала, заданного пользователем, найти все, у которых сумма первых...


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

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

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