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

Скобки не работают с постфиксным инкрементом - C++

Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ Найти наименьшее из трех чисел http://www.cyberforum.ru/cpp-beginners/thread167161.html
Суть задания найти наименьшее из трех чисел.Выводит только когда наименьшее либо первое либо третье,а когда второе не выводит ни чего. Помогите исправить ошибку,заранее благодарен! #include <stdio.h> void main() { int a,b,c; scanf("%d%d%d",&a,&b,&c); if(a < b) {
C++ Решение С учетом действительных чисел, B, C. Двойной каждый номер, если выполняется неравенство: а <= B <= с. Изменение каждого номера, чтобы это абсолютная ценность, в противном случае. Для каждого теста, выход, B, C. Подсказка: Используйте функцию из фабрик math.h библиотеки. Пример: Вход: 3.1 4.1 5.1 Выход 6.2 8.2 http://www.cyberforum.ru/cpp-beginners/thread167126.html
Високосный год C++
Даны три натуральных числа a, b, c представляющих день месяц и год. Для примера 1, 4, 1991 представляет 1-ое апреля 1991 года. Вывести три числа, представляющие следующую дату. Пример: ввод: 1 4 1991 вывод: 2 4 1991
C++ Правильная дата
Даны три натуральных чисел, B, C, которые представляют день, месяц и год некоторые даты. Выход "да", если указанной даты является правильной и "нет" в противном случае. Пример: Вход: 32 1 1991 Выход нет
C++ день учителя http://www.cyberforum.ru/cpp-beginners/thread167123.html
День учителя празднуют каждое первое воскресенье октября. Дано натуральное число n, который представляет число года. Выход даты день учителя этого года. Example: Input: 2010 Output 3
C++ функции new, delete здравствуйте. можете показать полную реализацию функции new , delete? подробнее

Показать сообщение отдельно
Evg
Эксперт CАвтор FAQ
17537 / 5775 / 370
Регистрация: 30.03.2009
Сообщений: 15,904
Записей в блоге: 26
22.09.2010, 11:03     Скобки не работают с постфиксным инкрементом
Manjak, вроде бы уже тут поясняли. То, что ты видишь в коде - это построение кода конкретно на твоём компиляторе. Другой компилятор может посторить другой код. Undefined Behaviour означает, что нельзя даже теоретически предложить "правильный" выход из сложившейся ситуации, а потому какждый компилятор в какждом UB случае ведёт себя так, как звёзды встали

Добавлено через 1 час 40 минут
Ну и, чисто для демонстрации того, что такое Undefined Behaviour. Запускал на sparc'е, поскольку только на нём имею возможность запустить на двух разных компиляторах

C
1
2
3
4
5
6
7
8
9
10
#include <stdio.h>
 
int a = 0, b = 0;
 
int
main (void)
{
  a = b++ + b++;
  printf ("a=%d b=%d\n", a, b);
}
Компилятор gcc выдаёт "a=0 b=1"
Компилятор sun cc выдаёт "a=1 b=2"

Теперь немного перепишем исходник: переменные вместо глобальных сделаем локальными

C
1
2
3
4
5
6
7
8
9
#include <stdio.h>
 
int
main (void)
{
  int a = 0, b = 0;
  a = b++ + b++;
  printf ("a=%d b=%d\n", a, b);
}
Компилятор gcc выдаёт "a=0 b=2"
Компилятор sun cc выдаёт "a=0 b=2"

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