Условная операция

В языке С++ имеется одна тернарная операция - условная операция, которая имеет следующий формат:

Форма записи:

выражение1? выражение2: выражение3

Результат Выражения1 должен быть целого или плавающего типа или быть указателем. Он оценивается с точки зрения его эквивалентности 0. Если результат Выражения1 не равен 0, то вычисляется Выражение2 и его значение является результатом операции. Если результат Выражения1 равен 0, то вычисляется Выражение3 и его значение является результатом операции. Следует отметить, что вычисляется либо Выражение2, либо Выражение3, но не оба. Тип результата зависит от типов 2 и 3, следующим образом.

1. Если результат Выражения2 или Выражения3 имеет целый или плавающий тип (отметим, что их типы могут отличаться), то выполняются обычные арифметические преобразования. Типом результата является тип результата выражения после преобразования.

2. Если Выражение2 и Выражение3 имеют один и тот же тип структуры, объединения или указателя, то тип результата будет тем же самым типом структуры, объединения или указателя.

3. Если оба выражения имеют тип void, то результат имеет тип void.

4. Если одно выражение является указателем на объект любого типа, а другое является указателем на vold, то указатель на объект преобразуется к указателю на vold, который и будет типом результата.

5. Если одно выражение является указателем, а другое константным выражением со значением 0, то типом результата будет тип указателя.

Пример:

#include <stdio.h>

void main()

{

float a,b,c,max,m1;

printf("Введите а,b,с:\n");

scanf("%f %f %f",&a,&b,&c);

max=(a>b)?a:b;

max=(max>c)?max:c;

printf("%f\n",max);

}

Переменной max присваивается максимальное значение переменных a, b, c.

Пример: Расположить числа a,b,c в порядке убывания

#include <stdio.h>

void main()

{

float a,b,c,h;

printf("Введите a,b,c:\n");

scanf("%f %f %f",&a,&b,&c);

a<b?h=a,a=b,b=h:h=0;

a<c?h=a,a=c,c=h:h=0;

b<c?h=b,b=c,c=h:h=0;

printf("a= %.3f b= %.3f c= %.3f\n",a,b,c);

printf("\nПРОГРАММУ СОСТАВИЛ ИВАНОВ");

}


Понравилась статья? Добавь ее в закладку (CTRL+D) и не забудь поделиться с друзьями:  



double arrow
Сейчас читают про: