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

Ошибка в значении переменной, передаваемой в функцию - C++

Восстановить пароль Регистрация
 
Harmonster
9 / 9 / 3
Регистрация: 20.05.2012
Сообщений: 101
18.06.2012, 12:09     Ошибка в значении переменной, передаваемой в функцию #1
Странный вопрос конечно, ошибка в функции (верней число), но я не могу понять почему не работает правильно.

1 код
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
#include <iostream>
#include <conio.h>
using namespace std;
int Add (int x, int y){
    cout << "В функции Add(), получено " << x << " и " << y << "\n";
    return (x+y);
}
 
int main (){
    setlocale (LC_ALL, "Russian");
    int a,b,c;
    cout << "Введите два числа: ";
    cin >> a,b;
    cout << "\n";
    cout << "Отправляемся в Add()...\n";
    c = Add(a,b);
    cout << "Возвращаемся в main()..\n";
    cout << "Переменная 'c' получила значение: " << c;
    getch();
}


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>
#include <conio.h>
using namespace std;
int Add (int x, int y){
    cout << "В функции Add(), получено " << x << " и " << y << "\n";
    return (x+y);
}
 
int main (){
    setlocale (LC_ALL, "Russian");
    int a,b,c;
    cout << "Введите два числа: ";
    cin >> a;
    cin >> b;
    cout << "\n";
    cout << "Отправляемся в Add()...\n";
    c = Add(a,b);
    cout << "Возвращаемся в main()..\n";
    cout << "Переменная 'c' получила значение: " << c;
    getch();
}


В 1 коде ввод:
C++
1
cin >> a,b;
а во 2 коде:
C++
1
2
     cin >> a;
    cin >> b;
Правильнее, будет конечно как во 2 случае, но почему не получается? (1.png)
Миниатюры
Ошибка в значении переменной, передаваемой в функцию   Ошибка в значении переменной, передаваемой в функцию  
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
18.06.2012, 12:09     Ошибка в значении переменной, передаваемой в функцию
Посмотрите здесь:

C++ Написать и протестировать функцию, которая в строке, передаваемой ей в качестве параметра, заменяет каждый второй элемент на заданный символ.
Запустить функцию с именем из переменной C++
Загвоздка в значении переменной C++
Создать функцию LOWER, преобразующую заглавные буквы передаваемой ей строки в строчные C++
Создать функцию SWAP, преобразующую заглавные буквы передаваемой ей строки в строчные и наоборот C++
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
David Sylva
 Аватар для David Sylva
1281 / 943 / 51
Регистрация: 17.05.2012
Сообщений: 2,686
18.06.2012, 12:27     Ошибка в значении переменной, передаваемой в функцию #2
Правильнее будет cin >> a >> b;
Harmonster
9 / 9 / 3
Регистрация: 20.05.2012
Сообщений: 101
18.06.2012, 12:31  [ТС]     Ошибка в значении переменной, передаваемой в функцию #3
Я понимаю, да. Но всё таки, передает вообще левое значение..
Передает значение 2293576. Диапазон у int от -2147483648 до 2147483648.
Почему именно 2293576 не понятно вообще.
David Sylva
 Аватар для David Sylva
1281 / 943 / 51
Регистрация: 17.05.2012
Сообщений: 2,686
18.06.2012, 12:37     Ошибка в значении переменной, передаваемой в функцию #4
Не понял в чём у тебя проблема. Подправь в первом коде cin и вроде всё работает нормально.
grizlik78
Эксперт С++
 Аватар для grizlik78
1882 / 1414 / 101
Регистрация: 29.05.2011
Сообщений: 2,960
18.06.2012, 13:12     Ошибка в значении переменной, передаваемой в функцию #5
Цитата Сообщение от Harmonster Посмотреть сообщение
Почему именно 2293576 не понятно вообще.
Потому, что ввод в переменную b не осуществляется вообще, и она остаётся неинициализированной. Значение её может быть любым, она содержит мусор, который остался в памяти, например, от каких-то предыдущих вычислений.
Yandex
Объявления
18.06.2012, 13:12     Ошибка в значении переменной, передаваемой в функцию
Ответ Создать тему
Опции темы

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