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

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

Войти
Регистрация
Восстановить пароль
 
 
Revolver19931
1 / 1 / 1
Регистрация: 24.09.2013
Сообщений: 139
#1

Код с подвохом: какое значение присвоится переменной? - C++

13.07.2016, 20:55. Просмотров 577. Ответов 26
Метки нет (Все метки)

есть часть кода
C++
1
2
3
a=0;
x=1;y=-1;
if(x>0) if (y=0) a=1 else a=2
C++
1
if (y=0)
тут идет присвоение значения y=0 а не сравнивание, если что)

вопрос в том какое значение присвоится переменной а ?
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
13.07.2016, 20:55
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Код с подвохом: какое значение присвоится переменной? (C++):

Присвоить значение наименьшего элемента массива переменной М1, номер строки, где находится этот элемент, - переменной Т, номер столбца - переменной С - C++
Массив С действительных чисел имеет 5 строк и 11 столбцов. Присвоить значение наименьшего элемента массива переменной М1, номер строки, где...

Какое поле у структурной переменной содержащей указатель? - C++
Добрый день! Только учу С++. И, вот , возник вопрос. Обычная структура, например. struct sct { int d; int f; } sct s; ...

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

Переполнение знаковых целых чисел: почему значение переменной обнуляется, а не записывается младшее значение? - C++
что то не пойму, как происходит переполнение знаковых целых чисел вот #include <iostream> int main(int argc, char* argv) { ...

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

Какое значение будет иметь а? - C++
Помогите выбрать правильный вариант в этой задаче(и еще объясните, как вы считали). Заранее спасибо. int a; int f(int x) { a=0; ...

26
Hikari
Хитрая блондиночка $)
1449 / 956 / 285
Регистрация: 21.12.2015
Сообщений: 3,798
13.07.2016, 20:59 #2
Цитата Сообщение от Revolver19931 Посмотреть сообщение
какое значение присвоится переменной а ?
Скорее всего два.
0
Ferrari F1
603 / 496 / 99
Регистрация: 27.01.2015
Сообщений: 2,908
Записей в блоге: 1
Завершенные тесты: 1
13.07.2016, 21:00 #3
Цитата Сообщение от Revolver19931 Посмотреть сообщение
какое значение присвоится переменной а ?
двойка?
0
HenryDukart
123 / 123 / 35
Регистрация: 05.10.2013
Сообщений: 457
Завершенные тесты: 2
13.07.2016, 21:02 #4
В чем подвох? Не знание, как работает оператор =?
0
Hikari
Хитрая блондиночка $)
1449 / 956 / 285
Регистрация: 21.12.2015
Сообщений: 3,798
13.07.2016, 21:02 #5
Кстати там ошибка синтаксическая...
0
daniilorain
👻👻👻
18 / 25 / 11
Регистрация: 22.04.2016
Сообщений: 166
13.07.2016, 21:02 #6
Никакое, потому что точки с запятой нет перед else. А если её поставить, то 2, потому что if(y = 0) не пройдёт, так как это выражение не возвращает true
1
Revolver19931
1 / 1 / 1
Регистрация: 24.09.2013
Сообщений: 139
13.07.2016, 21:28  [ТС] #7
Ну тогда получается что если не пройдет без "';" то значение a останется равным НУЛЮ ?
0
Хрисипп
19 / 29 / 8
Регистрация: 09.02.2016
Сообщений: 217
13.07.2016, 21:30 #8
Цитата Сообщение от daniilorain Посмотреть сообщение
А если её поставить, то 2, потому что if(y = 0) не пройдёт, так как это выражение не возвращает true
оно как раз и возвращает true, т.к. это утверждение

Добавлено через 1 минуту
Цитата Сообщение от Revolver19931 Посмотреть сообщение
Ну тогда получается что если не пройдет без "';"
вообще ничего не пройдет. как без ; после каждого, где нужно, должно скомпилироваться?
0
HenryDukart
123 / 123 / 35
Регистрация: 05.10.2013
Сообщений: 457
Завершенные тесты: 2
13.07.2016, 21:32 #9
Цитата Сообщение от Revolver19931 Посмотреть сообщение
Ну тогда получается что если не пройдет без "';" то значение a останется равным НУЛЮ ?
Не, тогда переменной a вообще не существует и ее значение не определено.
0
Revolver19931
1 / 1 / 1
Регистрация: 24.09.2013
Сообщений: 139
13.07.2016, 21:43  [ТС] #10
так изначально присваивается значение a=0;
0
daniilorain
👻👻👻
18 / 25 / 11
Регистрация: 22.04.2016
Сообщений: 166
13.07.2016, 21:46 #11
Хрисипп, То, что в скобках у if в данном случае не возвращает true
0
HenryDukart
123 / 123 / 35
Регистрация: 05.10.2013
Сообщений: 457
Завершенные тесты: 2
13.07.2016, 21:48 #12
Цитата Сообщение от Revolver19931 Посмотреть сообщение
так изначально присваивается значение a=0
так у вас код просто не скомпилируется, вот и всё.
0
_Ivana
13.07.2016, 21:56
  #13

Не по теме:

Когда я писал свой лисп, я думал - какой результат должен возвращать оператор присваивания? Сначала сделал чтобы возвращал то, что присваивается. И такая забавная засада началась - определяю функцию (факториал например) и следом ее вызываю, пусть от 6. Возвращает факториал 720 Потому что воспринимает как вызов внешней функции (результата оператора определения) от аргумента - значения этой функции от аргумента, то есть 6 В итоге плюнул и во всех непонятных случаях стал возвращать ОК - работает как часы

0
Unknownx
Заблокирован
13.07.2016, 22:10 #14
Revolver19931, значение а будет 2, однако для этого в коде после присваиваний а нужно поставить ; иначе код вообще не соберётся. Также следует отметить что значение у после отработки кода станет 0, вместо изначального -1

Добавлено через 2 минуты
Соберётся вот такой код
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
#include <iostream>
using namespace std;
 
int main(){
    int a, x, y;
    a=0;
    x=1;y=-1;
    if((bool)(x>0)) 
    if((bool)(y=0)) 
       a=1; 
    else 
       a=2;
    cout<<a<<endl;
    return 0;
}
http://codepad.org/GgsCGxIC
2
0
_Ivana
13.07.2016, 22:21     Код с подвохом: какое значение присвоится переменной?
  #15

Не по теме:

Да и без явных кастов само к булу прибулится

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

Загрузка переменной из DLL (GetProcAddress не берет значение переменной из *.dll) - C++
GetProcAddress не берет значение переменной из *.dll Не могу понять почему. Помогите. ------------------------- *********** ...

Задачка: какое значение вернет foo(7)? - C++
Как решаются такие рода задачки, подскажите пожалуйста. int foo(int n) { if(n&lt;=0) return 1; else return...

Какое значение вернет программа операционной системе? - C++
Допустим, в программе присутствует следующий код: int fn(int a) { return a++; } void main() { int x = fn(7); return x; } ...

какое значение будет выведено при выполнении операторов - C++
помогите пожалуйста.


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

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

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