Форум программистов, компьютерный форум, киберфорум
Наши страницы
С++ для начинающих
Войти
Регистрация
Восстановить пароль
 
 
Revolver19931
1 / 1 / 1
Регистрация: 24.09.2013
Сообщений: 140
#1

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

13.07.2016, 20:55. Просмотров 637. Ответов 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, номер строки, где находится этот элемент, - переменной Т, номер столбца - переменной С
Массив С действительных чисел имеет 5 строк и 11 столбцов. Присвоить значение...

Какое поле у структурной переменной содержащей указатель?
Добрый день! Только учу С++. И, вот , возник вопрос. Обычная структура,...

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

Найти деление одной переменной на другую при этом вы должны ввести значение переменной и реализовать проверку на правиль
1)На паре дали задание найти деление одной переменной на другую при этом вы...

Переполнение знаковых целых чисел: почему значение переменной обнуляется, а не записывается младшее значение?
что то не пойму, как происходит переполнение знаковых целых чисел вот...

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

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

Добавлено через 1 минуту
Цитата Сообщение от Revolver19931 Посмотреть сообщение
Ну тогда получается что если не пройдет без "';"
вообще ничего не пройдет. как без ; после каждого, где нужно, должно скомпилироваться?
0
HenryDukart
124 / 124 / 44
Регистрация: 05.10.2013
Сообщений: 457
Завершенные тесты: 2
13.07.2016, 21:32 #9
Цитата Сообщение от Revolver19931 Посмотреть сообщение
Ну тогда получается что если не пройдет без "';" то значение a останется равным НУЛЮ ?
Не, тогда переменной a вообще не существует и ее значение не определено.
0
Revolver19931
1 / 1 / 1
Регистрация: 24.09.2013
Сообщений: 140
13.07.2016, 21:43  [ТС] #10
так изначально присваивается значение a=0;
0
daniilorain
👻👻👻
18 / 25 / 12
Регистрация: 22.04.2016
Сообщений: 166
13.07.2016, 21:46 #11
Хрисипп, То, что в скобках у if в данном случае не возвращает true
0
HenryDukart
124 / 124 / 44
Регистрация: 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
0x90h
321 / 287 / 108
Регистрация: 01.10.2015
Сообщений: 863
13.07.2016, 22:24 #16
_Ivana, тогда уж проще вообще написать:
C++
1
if (x) a = 2;
0
_Ivana
3233 / 1861 / 235
Регистрация: 01.03.2013
Сообщений: 5,091
Записей в блоге: 5
13.07.2016, 22:28 #17
0x90h, проще, но работать будет по-другому на отрицательных иксах.
0
0x90h
321 / 287 / 108
Регистрация: 01.10.2015
Сообщений: 863
13.07.2016, 22:32 #18
Цитата Сообщение от _Ivana Посмотреть сообщение
на отрицательных иксах
Разве?
0
_Ivana
3233 / 1861 / 235
Регистрация: 01.03.2013
Сообщений: 5,091
Записей в блоге: 5
13.07.2016, 22:34 #19
Цитата Сообщение от 0x90h Посмотреть сообщение
Разве?
Это несложно проверить.
0
Tulosba
:)
Эксперт С++
4746 / 3240 / 496
Регистрация: 19.02.2013
Сообщений: 9,046
13.07.2016, 22:57 #20
Цитата Сообщение от Revolver19931 Посмотреть сообщение
вопрос в том какое значение присвоится переменной а ?
Такие вопросы правильнее всего задавать компилятору. А если будет расхождение с ожидаемым поведением уже начинать разбор. И если понять не получилось - можно спросить и у других. Но ты, по-моему, первые два пункта проигнорировал.
0
13.07.2016, 22:57
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
13.07.2016, 22:57
Привет! Вот еще темы с решениями:

Переменной L присвойте значение True, если в массиве нечетное количество элементов,и значение False в противоположном
Создайте файл, который содержит массив целых чисел. Напишите программу, которая...

Какое значение будет иметь а?
Помогите выбрать правильный вариант в этой задаче(и еще объясните, как вы...

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

Задачка: какое значение вернет foo(7)?
Как решаются такие рода задачки, подскажите пожалуйста. int foo(int n) { ...


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

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

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