Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.83/6: Рейтинг темы: голосов - 6, средняя оценка - 4.83
5 / 3 / 2
Регистрация: 29.11.2012
Сообщений: 545
1

Мне говорят, что в задачах множество ошибок и работает, только задача 6

22.01.2019, 12:21. Показов 1197. Ответов 11
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Вот код задач. Я не знаю, почему мне пишут, что много ошибок и ничего нормально не работает. Подскажите, где ошибки и как исправить:

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
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
// Задание 6: Пользователь вводит целое число. Необходимо вывести все целые числа, на которое заданное число делиться без остатка.
#include "pch.h" #include <iostream>
using namespace std;
int main() {
setlocale(0, "rus"); int a;
cout << "a: >>"; cin >> a;
for (size_t i = 2; i < a; i++) {
if (a%i!=0) {
cout << i << endl;
} }
//2 Подсчитать количество целых чисел в диапазоне от 100 до 999, у которых все цифры разные
#include "pch.h" #include <iostream>
using namespace std;
int main() {
}
setlocale(0, "rus");
int res = 0, n1, n2, n3; int a = 100, b = 999;
cout << "a, b: >>"; cin >> b;
for (; a <= b; a++) {
n1 = b / 100;
n3 = (b % 100) / 10; n2 = b % 10;
if (n1 != n2 && n2 != n3 && n1 != n1); {
res++;
cout << "результат = " << res << endl;
} }
system("pause");
return 0; }
//задание 4. Пользователь вводит любое целое число А. Необходимо вывести все целые числа В, для которых А делиться без остатка на В*В и не делиться без остатка на В*В*В
#include "pch.h" #include <iostream>
using namespace std;
int main() {
 
}
setlocale(0, "rus");
int a = 999;
int c = (int)sqrt((double)a); cout << "ввести число >>"; cin >> a;
for (int b = 2; b <=c; b++) {
}
if (a%(b*b)==0 && a%(b*b*b)) {
cout << "результат >>" << b << endl;
} system("pause"); return 0;
// Задание 7: Пользователь вводит два целых числа. Необходимо вывести все целые числа, на которые оба введенных числа делятся безостатка.
#include "pch.h" #include <iostream>
using namespace std;
int main() {
setlocale(0, "rus");
int a, b;
cout << "a, b: >>"; cin >> a >> b;
 
for (int i = 2; i < a; i++) {
if (a % i != 0 && b & i != 0) {
cout << i << endl;
} }
//Подсчитать количество целых чисел в диапазоне от 100 до 999, у которых есть две одинаковые цифры
#include "pch.h" #include <iostream>
using namespace std;
int main() {
setlocale(0, "rus");
int res = 0, n1, n2, n3; int a = 100, b = 999;
for (; a <= b; a++) {
n1 = b / 100;
n3 = (b % 100) / 10; n2 = b % 10;
if (n1==n2||n2==n3||n3==n1) {
res++;
}
 
cout << "результат = " << res << endl;
} }
system("pause");
return 0; }
// Задание 3: Пользователь вводит любое целое число. Необходимо из этого целого числа удалить все цифры 3 и 6 и вывести обратно на экран.
#include "pch.h" #include <iostream>
using namespace std;
int main() {
setlocale(0, "rus");
int b = 0, c = 0, a;
cout << "ввести число >>" << endl; cin >> a;
while (a > 0) {
if (a % 10 != 3 && a % 10 != 6) {
c *= 10;
c += a % 10;
}
c /= 10;
 
}
cout << "\nрезультат";
while (c > 0) {
cout << c % 10;
c /= 10; }
cout << endl << endl;
system("pause");
return 0; }
// Задание 5: Пользователь вводит целое число А. Программа должна определить, что куб суммы цифр этого числа равен А*А
//
#include "pch.h" #include <iostream>
using namespace std;
int main() {
setlocale(0, "rus");
int a, b, c = 0;
cout << "ввести число >>"; cin >> a;
b = a;
while (a == 0)
 
{
c += a % 10;
a /= 10; }
       if (a==1 || a==27)
       {
cout << "\nд!" << endl;
}
else
{
} }
cout << "\nн!" << endl; system("pause"); return 0;
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
22.01.2019, 12:21
Ответы с готовыми решениями:

Есть три задачи, они работают и все выводят, но мне говорят, что это не так. Не могу разобраться с проблемой
Есть три задачи. Я их запускал и они работают. Но мне пишут, что ни одна не работает и не делает,...

Уважаемые профессионалы не работает интернет,в техподдержке говорят что всё нормально...
У меня проблема с выходом в интернет. mail.ru агент в он-лайне работает, а войти в почту не...

Отдали мне Lotus говорят бери и учи
Добрый день обращаюсь к Вам за помощью) Вот отдали мне Lotus говорят бери и учи, в прошлой теме...

что я делаю не так и чего мне не хватает? задача в описании
нужно сделать вот такой рисунок 1 1 1 1 1 1 1 0 1 1 1 1 1 0 0 0 1 1 1 0 0 0 0 0 1 0 0 0...

11
Эксперт CЭксперт С++
5118 / 4557 / 854
Регистрация: 07.10.2015
Сообщений: 9,462
22.01.2019, 13:29 2
Anonymous4722, задание 2, строка 22. Разве должно быть?
C++
1
n1 != n1
Добавлено через 2 минуты
В задании 4 разберитесь со скобками. Напишите с отступами, сами увидите, что не так.

Добавлено через 1 минуту
В задании 7 неправильно записано условие:
C++
1
if (a % i != 0 && b & i != 0)
Добавлено через 4 минуты
В следующем задании также неверно написано условие:
C++
1
(n1==n2||n2==n3||n3==n1)
требуется найти числа, у которых ровно две одинаковых цифры. Ответ 111 не подходит

Добавлено через 6 минут
В задании 3 строку 83 надо заменить на
C++
1
a /= 10;
Вывод сделан в обратном порядке цифр. Не проще было просто вывести с?

Добавлено через 1 минуту
Ну и программа 5 сделана вообще неправильно...
0
215 / 162 / 52
Регистрация: 09.12.2017
Сообщений: 520
22.01.2019, 14:18 3
Здравствуйте, Ваши решения задач содержат действительно колоссальное количество ошибок! И причем глупых ошибок. Расписывать не буду по ним можно написать целый реферат. Код нечитабельный - очень плохой стиль программирования.
Старайтесь делать пробелы между строками (отделять их) и пишите комментарии (без них Ваш код никто не поймет). 6-й номер не проверял, возможно он правильный. Вот как нужно было решить Ваши задачи (если понадобятся пояснения и комментарии - добавлю) :
Номер 1 :
Кликните здесь для просмотра всего текста
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;
 
// 1. Подсчитать количество целых чисел в диапазоне от 100 до 999, у которых есть две одинаковые цифры
int main()
{
    int count = 0;
    int stNumeral, ndNumeral, rdNumeral;
 
    for (int i = 100; i <= 999; i++) {
        stNumeral = i / 100;
        ndNumeral = i / 10 % 10;
        rdNumeral = i % 10;
 
        if (stNumeral == ndNumeral || ndNumeral == rdNumeral || stNumeral == rdNumeral)
            count++;
    }
    cout << " count : " << count << endl;
 
    return 0;
}


Номер 2 :
Кликните здесь для просмотра всего текста
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
#include <iostream>
 
using namespace std;
 
//2 Подсчитать количество целых чисел в диапазоне от 100 до 999, у которых все цифры разные
 
int main() {
 
    int count = 0;
    int stNumeral, ndNumeral, rdNumeral;
 
    for (int i=100; i<=999; i++) {
        stNumeral = i / 100;
        ndNumeral = i / 10 % 10;
        rdNumeral = i % 10;
 
        if (stNumeral != ndNumeral && ndNumeral != rdNumeral)
            count++;
    }
    return 0; 
}


Номер 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
25
26
27
28
#include <iostream>
 
using namespace std;
 
// 3. Пользователь вводит любое целое число. Необходимо из этого целого числа удалить все цифры 3 и 6 и вывести обратно на экран.
 
int main() {
    
    int number;
    cout << "Enter number: ";
    cin >> number;
 
    int b = 0;
 
    while (number)
    {
        if (number % 10 != 3 && number % 10 != 6)
            b = b * 10 + number % 10;
        number /= 10;
    }
    while (b)
    {
        number = number * 10 + b % 10;
        b /= 10;
    }
    cout << number << endl;
    return 0;
}


Номер 4 :
Кликните здесь для просмотра всего текста
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
#include <iostream>
 
using namespace std;
 
//4. Пользователь вводит любое целое число А. Необходимо вывести все целые числа В, для которых А делиться без остатка на В*В и не делиться без остатка на В*В*В
 
int main() {
    int a; cout << " Enter a = "; cin >> a;
 
    for (int b = 2; b < a; b++) // проверим все числа до a
    {
        if (a%b*b == 0 && a % b*b*b != 0) // условие немного смущает
            cout << " b : " << b << endl;
    }
 
    return 0;
}


Номер 5 :
Кликните здесь для просмотра всего текста
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
#include <iostream>
 
using namespace std;
 
// 5. Пользователь вводит целое число А. Программа должна определить, что куб суммы цифр этого числа равен А*А
 
int main()
{
    int a; cout << " Enter a = "; cin >> a;
 
    int number;
    int sum = 0;
 
    while (a > 0) {
        number = a % 10;
        a = a / 10;
        sum += number;
    }
 
    if (pow(sum, 3) == a * a)
        cout << " " << true << endl;
    else
        cout << " " << false << endl;
 
    return 0;
}


Номер 7 :
Кликните здесь для просмотра всего текста
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
#include <iostream>
 
using namespace std;
 
// 7. Пользователь вводит два целых числа. Необходимо вывести все целые числа, на которые оба введенных числа делятся безостатка.
 
int main() {
    int a; cout << " Enter a = "; cin >> a;
    int b; cout << " Enter b = "; cin >> b;
 
    int count; cout << " Enter count = "; cin >> count; // до какого числа будем проверять
 
    for (int i = 2; i < count; i++) 
        if (a % i == 0 && b % i == 0) 
            cout << " i : " << i << endl;
 
    return 0;
}


Желаю успехов!

Добавлено через 13 минут
Цитата Сообщение от liv Посмотреть сообщение
требуется найти числа, у которых ровно две одинаковых цифры
Возможно в задаче имеется ввиду хотя бы две одинаковые цифры?
Тогда то условие правильное

Добавлено через 5 минут
liv, если Вы правы тогда вот нужное условие :
Код
if((n1==n2 && n2 != n3) || (n1 != n2 && n2 == n3) || (n1 == n3 && n1 != n2)
0
Эксперт CЭксперт С++
5118 / 4557 / 854
Регистрация: 07.10.2015
Сообщений: 9,462
22.01.2019, 16:03 4
Цитата Сообщение от JohnBlack123 Посмотреть сообщение
хотя бы две одинаковые цифры
Сказано же, решена неправильно
Значит, неправильно
0
215 / 162 / 52
Регистрация: 09.12.2017
Сообщений: 520
22.01.2019, 23:13 5
liv,
Цитата Сообщение от liv Посмотреть сообщение
Сказано же, решена неправильно
Значит, неправильно
0
7437 / 5029 / 2892
Регистрация: 18.12.2017
Сообщений: 15,692
23.01.2019, 03:49 6
Цитата Сообщение от JohnBlack123 Посмотреть сообщение
Вот как нужно было решить Ваши задачи

Номер 2:
Подсчитать количество целых чисел в диапазоне от 100 до 999, у которых все цифры разные
Цитата Сообщение от JohnBlack123 Посмотреть сообщение
if (stNumeral != ndNumeral && ndNumeral != rdNumeral)
запись неправильная - например подсчитает 757
Номер 3:
удалить все цифры 3 и 6
Enter number: 3706
результат: 7 - потерян ноль.
Номер 4:
А делится без остатка на В*В и не делится без остатка на В*В*В
Цитата Сообщение от JohnBlack123 Посмотреть сообщение
if (a%b*b == 0 && a % b*b*b != 0)
запись неправильная - произведения идут без скобок
Номер 5:
куб суммы цифр этого числа равен А*А
Цитата Сообщение от JohnBlack123 Посмотреть сообщение
if (pow(sum, 3) == a * a)
запись неправильная - после цикла A испорчено. pow в таких задачах не применяется.
Номер 7:
Пользователь вводит два целых числа.
Цитата Сообщение от JohnBlack123 Посмотреть сообщение
int a; cout << " Enter a = "; cin >> a;
int b; cout << " Enter b = "; cin >> b;
int count; cout << " Enter count = "; cin >> count;
решение не соответствует условию - вводится 3 числа
Цитата Сообщение от JohnBlack123 Посмотреть сообщение
решения задач содержат действительно колоссальное количество ошибок!
0
215 / 162 / 52
Регистрация: 09.12.2017
Сообщений: 520
23.01.2019, 08:13 7
Yetty!
Номер 2:
Подсчитать количество целых чисел в диапазоне от 100 до 999, у которых все цифры разные
Цитата Сообщение от Yetty Посмотреть сообщение
if (stNumeral != ndNumeral && ndNumeral != rdNumeral)
Код
if (stNumeral != ndNumeral && ndNumeral != rdNumeral && stNumeral != rdNumeral)
{...}
Цитата Сообщение от Yetty Посмотреть сообщение
Номер 3:
удалить все цифры 3 и 6
Enter number: 3706
результат: 7 - потерян ноль.
Кликните здесь для просмотра всего текста
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
// 3. Пользователь вводит любое целое число. Необходимо из этого целого числа удалить все цифры 3 и 6 и вывести обратно на экран.
 
#include <iostream>
using namespace std;
 
int main() {
 
    int num;
    cout << "Enter num: ";
    cin >> num;
 
    int result = 0, tmp, ten = 1;
    for (; num != 0; num /= 10) {
        tmp = num % 10;
        if (tmp != 3 && tmp !=6) {
            result = tmp * ten + result;
            ten *= 10;
        }
    }
 
    cout << " result : " << result << endl;
 
    return 0;
}

Номер 4:
А делится без остатка на В*В и не делится без остатка на В*В*В
Цитата Сообщение от Yetty Посмотреть сообщение
if (a%b*b == 0 && a % b*b*b != 0)
Код
if(a%(b*b) == 0 && a % (b*b*b) != 0
{...}
Цитата Сообщение от Yetty Посмотреть сообщение
Номер 5:
куб суммы цифр этого числа равен А*А
Цитата Сообщение от Yetty Посмотреть сообщение
Номер 7:
Пользователь вводит два целых числа.
int a; cout << " Enter a = "; cin >> a;
int b; cout << " Enter b = "; cin >> b;
int count; cout << " Enter count = "; cin >> count;
решение не соответствует условию - вводится 3 числа
Кликните здесь для просмотра всего текста
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
#include <iostream>
 
using namespace std;
 
// 7. Пользователь вводит два целых числа. Необходимо вывести все целые числа, на которые оба введенных числа делятся безостатка.
 
int main() {
    int a; cout << " Enter a = "; cin >> a;
    int b; cout << " Enter b = "; cin >> b;
 
    for (int i = 2; i < a*b; i++) // проверим до a*b
        if (a % i == 0 && b % i == 0)
            cout << " i : " << i << endl;
 
    return 0;
}


Добавлено через 6 минут
Номер 5
Кликните здесь для просмотра всего текста
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
#include <iostream>
 
using namespace std;
 
// 5. Пользователь вводит целое число А. Программа должна определить, что куб суммы цифр этого числа равен А*А
 
int main()
{
    int a; cout << " Enter a = "; cin >> a;
 
    int number;
    int sum = 0;
 
    int buff =a;
    while (buff  > 0) {
        number = buff  % 10;
        buff  = buff  / 10;
        sum += number;
    }
 
    if ((sum*sum*sum) == (buff *buff ))
        cout << " " << true << endl;
    else
        cout << " " << false << endl;
 
    return 0;
}
0
7437 / 5029 / 2892
Регистрация: 18.12.2017
Сообщений: 15,692
23.01.2019, 14:51 8
JohnBlack123, замысел верный. но реализация... присвоить buff значение A, испортить buff и сравнивать с buff.
0
215 / 162 / 52
Регистрация: 09.12.2017
Сообщений: 520
23.01.2019, 16:55 9
Yetty,

Добавлено через 48 секунд
Цитата Сообщение от Yetty Посмотреть сообщение
JohnBlack123, замысел верный. но реализация... присвоить buff значение A, испортить buff и сравнивать с buff.
Почему бы и нет?
Не подскажите как это сделать лучше? Буду очень благодарен!
0
7437 / 5029 / 2892
Регистрация: 18.12.2017
Сообщений: 15,692
23.01.2019, 17:57 10
Цитата Сообщение от JohnBlack123 Посмотреть сообщение
Не подскажите как это сделать лучше? Буду очень благодарен!
в цикле buff портится, поэтому сравнивать в if нужно не с buff, а с A.
кстати кроме 1 разве есть такие числа ?
0
215 / 162 / 52
Регистрация: 09.12.2017
Сообщений: 520
23.01.2019, 18:00 11
Yetty, спасибо! Сегодня попробую сделать и отправлю сюда.
0
5 / 3 / 2
Регистрация: 29.11.2012
Сообщений: 545
24.01.2019, 22:12  [ТС] 12
Цитата Сообщение от JohnBlack123 Посмотреть сообщение
Здравствуйте, Ваши решения задач содержат действительно колоссальное количество ошибок! И причем глупых ошибок. Расписывать не буду по ним можно написать целый реферат. Код нечитабельный - очень плохой стиль программирования.
Старайтесь делать пробелы между строками (отделять их) и пишите комментарии (без них Ваш код никто не поймет). 6-й номер не проверял, возможно он правильный. Вот как нужно было решить Ваши задачи (если понадобятся пояснения и комментарии - добавлю) :
5 задача не работает: Переменная A после цикла равна нулю. 6 задача с ошибкой: if (a%i != 0) условие неверное. 1 ок. 2 ок. 4 не работает, ошибка в приоритетах операций, остаток от деления берется раньше, чем выполнилось умножение, нужны скобки. 7 задача - ошибка в условии && b & i == 0 3 задача не работает
0
24.01.2019, 22:12
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
24.01.2019, 22:12
Помогаю со студенческими работами здесь

Объясните человеческим языком мне чайнику что такое singleton, статический класс. Зачем они нужны. Что рекомендуете прочитать мне для начала
Объясните человеческим языком мне чайнику что такое singleton, статический класс. Зачем они нужны....

Критичное восприятие, которого мне не хватало (да и не только мне)
Недавно я понял, чего мне так сильно не хватало большую часть жизни - достаточной осознанности...

Говорят, что математика умрёт
Увлекшись математикой, прослушав ряд лекций, прочитав много статей по теме я натыкался на такие...

Множество. Получить новое множество, в котором присутствуют только четные числа
Задано множество целых чисел от 1 до 255. Получить из этого множества новое множество, в котором...

Что мне надо поменять в моём компе, работает медленно как то!
Ребята подскажите кто хорошо понимает, модернизация последняя 14.03.11год. Сижу в основном в...

Почему код не работает хотя ошибок нет? Что-то не так с выделением памяти?
#include &lt;math.h&gt; #include &lt;stdio.h&gt; #include &lt;conio.h&gt; #include &lt;iostream&gt; using namespace...


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

Или воспользуйтесь поиском по форуму:
12
Ответ Создать тему
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru