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

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

Войти
Регистрация
Восстановить пароль
 
Harmonster
9 / 9 / 3
Регистрация: 20.05.2012
Сообщений: 101
#1

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

18.06.2012, 12:09. Просмотров 340. Ответов 4
Метки нет (Все метки)

Странный вопрос конечно, ошибка в функции (верней число), но я не могу понять почему не работает правильно.

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)
0
Миниатюры
Ошибка в значении переменной, передаваемой в функцию   Ошибка в значении переменной, передаваемой в функцию  
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
18.06.2012, 12:09
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Ошибка в значении переменной, передаваемой в функцию (C++):

Определить тип передаваемой в функцию переменной - C++
Добрый день! Подскажите как правильно объявить переменную elem, которая передаётся в функцию. Выводит ошибку. Менял типы передаваемых...

Как вывести имя переменной, передаваемой в фукцию? - C++
Как это сделать? void func(int arg) { cout &lt;&lt; } int main() { int a1 = 1;

Создать функцию LOWER, преобразующую заглавные буквы передаваемой ей строки в строчные - C++
Создать функцию LOWER, преобразующую заглавные буквы передаваемой ей строки в строчные С помощью этой функции преобразовать строку «Happy...

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

Загвоздка в значении переменной - C++
int i = 5; i = ++i + ++i; Чему будет равно i? Помню, в Страуструпе что-то похожее было, но не вспомню.

Написать и протестировать функцию, которая в строке, передаваемой ей в качестве параметра, заменяет каждый второй элемент на заданный символ. - C++
помогите ребят!!! вот препод задал мне задачи для зачетной недели, фактически все сделал,кроме этой: &quot;Написать и протестировать функцию,...

4
David Sylva
1291 / 953 / 51
Регистрация: 17.05.2012
Сообщений: 2,687
18.06.2012, 12:27 #2
Правильнее будет cin >> a >> b;
0
Harmonster
9 / 9 / 3
Регистрация: 20.05.2012
Сообщений: 101
18.06.2012, 12:31  [ТС] #3
Я понимаю, да. Но всё таки, передает вообще левое значение..
Передает значение 2293576. Диапазон у int от -2147483648 до 2147483648.
Почему именно 2293576 не понятно вообще.
0
David Sylva
1291 / 953 / 51
Регистрация: 17.05.2012
Сообщений: 2,687
18.06.2012, 12:37 #4
Не понял в чём у тебя проблема. Подправь в первом коде cin и вроде всё работает нормально.
0
grizlik78
Эксперт С++
1971 / 1464 / 122
Регистрация: 29.05.2011
Сообщений: 3,029
18.06.2012, 13:12 #5
Цитата Сообщение от Harmonster Посмотреть сообщение
Почему именно 2293576 не понятно вообще.
Потому, что ввод в переменную b не осуществляется вообще, и она остаётся неинициализированной. Значение её может быть любым, она содержит мусор, который остался в памяти, например, от каких-то предыдущих вычислений.
1
18.06.2012, 13:12
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
18.06.2012, 13:12
Привет! Вот еще темы с ответами:

Сделать так, что бы при неверном значении программа сообщала об этом и запускала функцию второй раз - C++
Возникла проблема в программе. void rasa (int classa) это функция которая принимает число 1-2-3 и в зависимости от числа отправляет нужное...

Передача переменной в функцию - C++
Здравствуйте. Подскажите пожалуйста как сделать следующее: есть класс: #pragma once #include &quot;Point2d.h&quot; #include &lt;vector&gt; ...

Передача переменной из функции в функцию - C++
#include &lt;iostream&gt; #include &lt;fstream&gt; // работа с файлами #include &lt;iomanip&gt; // манипуляторы ввода/вывода #include &lt;string&gt; using...

Запустить функцию с именем из переменной - C++
Всем доброго времени суток! Можно ли вызвать функцию, имя которой написано в переменной? Например, в ЯП AutoIt такая возможность есть...


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

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

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