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

Запомнить, какое число меньше 437, записать его в переменную и больше не изменять. Найти ошибку - C++

Восстановить пароль Регистрация
 
Melvil
 Аватар для Melvil
47 / 46 / 13
Регистрация: 20.05.2015
Сообщений: 246
15.07.2015, 13:51     Запомнить, какое число меньше 437, записать его в переменную и больше не изменять. Найти ошибку #1
Добрый день, решал задачу, нужно было сделать так, чтобы программа запомнила, какое число меньше 437 и записала его в переменную number, а также, чтобы потом уже не перезаписывала его, но почему то данные в функцию посылаются некорректно, где допущена ошибка?

Код:

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
#include <iostream>
using namespace std;
 
 
int check(int a, int b)
{
    if (b == 0)
    {
        b = a;
        return b;
    }
    else
        return 0;
}
 
int main()
{
    int N, H, number = 0;
    cin >> N;
    for (int i = 1; i <= N; i++)
    {
        cin >> H;
        if (H <= 437)
        {
            check(i, number);
        }
    }
    if (H != 0)
        cout << "Crash " << number << endl;
    else
        cout << "No crash" << endl;
    return 0;
}
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
15.07.2015, 13:51     Запомнить, какое число меньше 437, записать его в переменную и больше не изменять. Найти ошибку
Посмотрите здесь:

Дано натуральное число n>0 и последовательнось чисел из n елементов, найти количество всех чисел которые больше за 0 и меньше за 0 C++
Определить количество элементов матрицы у которых слева в его строке находятся элементы меньше его,а справа больше C++
C++ Передать в функцию целое число. Функция заменяет его на ближайшее простое число, которое больше или меньше исходного. Вернуться в main( ) и распечатат
Как запомнить какое-то число? C++
C++ Составить программу, которая позволяет ввести с клавиатуры шестнадцатеричное число и записать его в переменную a, выполнить требуемую проверку.
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
David_Ok
 Аватар для David_Ok
5 / 5 / 1
Регистрация: 12.01.2015
Сообщений: 87
15.07.2015, 14:09     Запомнить, какое число меньше 437, записать его в переменную и больше не изменять. Найти ошибку #2
Цитата Сообщение от Melvil Посмотреть сообщение
check(i, number);
Ты когда вызываешь ф-цию, то что она возвращает, ни куда не записывается, тебе либо нужно приписать какой-то переменной то что ф-ция вернет либо использовать ссылку
C++
1
check(i, &number);
Raali
572 / 276 / 12
Регистрация: 06.07.2013
Сообщений: 917
Завершенные тесты: 1
15.07.2015, 14:10     Запомнить, какое число меньше 437, записать его в переменную и больше не изменять. Найти ошибку #3
Цитата Сообщение от Melvil Посмотреть сообщение
int check(int a, int b)
тут функция получает аргумент b как копию переменной number, в итоге ты изменяешь b а number нет
функция должна получать b в виде ссылки на переменную :

C++
1
int check(int a, int& b)
либо второй вариант - так как функция все равно возвратит значение сделать в main так :

C++
1
number = check(i, number);
Melvil
 Аватар для Melvil
47 / 46 / 13
Регистрация: 20.05.2015
Сообщений: 246
15.07.2015, 14:44  [ТС]     Запомнить, какое число меньше 437, записать его в переменную и больше не изменять. Найти ошибку #4
Цитата Сообщение от Raali Посмотреть сообщение
тут функция получает аргумент b как копию переменной number, в итоге ты изменяешь b а number нет
b вместо нуля становится равной 7-мизначному числу. Всё-таки можно ссылку на какой-нибудь текст?
Yandex
Объявления
15.07.2015, 14:44     Запомнить, какое число меньше 437, записать его в переменную и больше не изменять. Найти ошибку
Ответ Создать тему
Опции темы

Текущее время: 09:17. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru