Форум программистов, компьютерный форум, киберфорум
Наши страницы
C для начинающих
Войти
Регистрация
Восстановить пароль
 
Глеб Хвалевко
0 / 0 / 0
Регистрация: 13.10.2015
Сообщений: 1
1

Что делает эта строчка: ++x && ++y || ++z; ?

05.06.2018, 21:51. Просмотров 228. Ответов 5
Метки нет (Все метки)

Что делает эта строчка? ++x && ++y || ++z;
0
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
05.06.2018, 21:51
Ответы с готовыми решениями:

K&R 2.2 Напишите цикл, не используя || и &&
эквивалентный этому циклу for (i = 0; i < lim-1 && (c=getchar()) != '\n' && c != EOF; ++i) s =...

В чем отличие & и && ?
В чем отличие & и && ? например if (px == x && py == y) и if (px == x & py == y)

Матрица. Подсчитать количество строк, ВСЕ элементы которых >=6 && <=8
Дан табель отметок. Нужно посчитать количество хорошистов. (Отметки &gt;=6 &amp;&amp; &lt;=8) #include &lt;stdio.h&gt;...

Переписать цикл без использования операторов && и ||
Нижеприведенный цикл нужно написать без использования операторов &amp;&amp; и || : for(i = 0; i &lt; lim-1...

Каким можно заменить операцию &&
Приветствую #include&lt;stdio.h&gt; int main (void) { int a=5;b=60;c; c=a&amp;&amp;amp;b; printf(&quot;%d\n&quot;,c);...

5
Ovederax
213 / 147 / 100
Регистрация: 30.04.2017
Сообщений: 315
07.06.2018, 16:11 2
Увеличивает значения переменных
C
1
2
3
x=x+1;
y=y+1;
z=z+1;
0
iAlexander
1 / 1 / 1
Регистрация: 25.09.2014
Сообщений: 46
07.06.2018, 22:55 3
Или увеличиваешь x и у на единицу,или увеличиваешь z на 1 (++x && ++y)||(++z)
0
volvo
Супер-модератор
Эксперт Pascal/DelphiАвтор FAQ
27038 / 18082 / 7147
Регистрация: 22.10.2011
Сообщений: 31,843
Записей в блоге: 6
08.06.2018, 01:07 4
Цитата Сообщение от Глеб Хвалевко Посмотреть сообщение
Что делает эта строчка?
Возвращает результат логического типа: либо инкрементированное значение x НЕ равно 0 и при этом инкрементированное же значение y также НЕ равно 0, либо нулю не равно инкрементированное значение z.
0
Ovederax
213 / 147 / 100
Регистрация: 30.04.2017
Сообщений: 315
08.06.2018, 06:21 5
Воообще существует 8 вариантов развития событий
Инкрементироватся переменные могут такими парами(см. вложение):
1)x,y - строки 1,2
2)x,y,z - строки 3,4
3)x,z - строки 5,6,7,8

? - любое значение отличное от -1
?i = ?+1
r - результат выражения

Можно копнуть еще глубже, поговорить о приорететах операторов, об оптимизациях компилятора и тд
ведь си это такой простой и такой сложный язык одновременно...

Код
Кликните здесь для просмотра всего текста
C
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
#include <stdio.h>
#include <stdlib.h>
#include <locale.h>
 
int main()
{
    int r,x,y,z,num[6];
    printf("  x   y   z   x   y   z  r\n");
    for(int variant=0; variant<8; ++variant)
    {
        if(variant & 1)
            z=-1;
        else
            z=100;
        if(variant & 2)
            y=-1;
        else
            y=100;
        if(variant & 4)
            x=-1;
        else
            x=100;
        num[0]=x;
        num[1]=y;
        num[2]=z;
        r = ++x && ++y || ++z;
        num[3]=x;
        num[4]=y;
        num[5]=z;
        printf(" ");
        for(int i=0;i<6;++i)
        {
            if(num[i]==100)
                printf(" ?  ");
            else if(num[i]==101)
                printf("?i  ");
            else
                printf("%2d  ",num[i]);
        }
        printf("%d\n",r);
    }
    return 0;
}
0
Изображения
 
ValeryS
Модератор
7482 / 5665 / 725
Регистрация: 14.02.2011
Сообщений: 19,367
Завершенные тесты: 1
08.06.2018, 13:47 6
volvo, тут вопрос будут ли инкреминироватся все переменные
или выборочно
в операции И если первое выражение ЛОЖЬ то второе не выполняется, ИЛИ если первое ИСТИНА то второе не выполняется
например все -1
тогда на выходе имеем x=0 y=-1 z=0
или x=0 y=0 z=0
по мне лучше избегать таких головоломок
0
08.06.2018, 13:47
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
08.06.2018, 13:47

Не работает код (оператор &&)
Народ, код из примера курса по программированию на C не работает, так, как от него ожидалось......

Ошыбка в if(e==' ')&&(e<'a')&&(e>'z')
Задача: Нужно найти для заданого текста длину максимальной серии символов, которые не равны...

Объясните выражение (0<=i)&&(i<=n)
Народ, объясните пожалуйста выражение: (0&lt;=i)&amp;&amp;(i&lt;=n) Зачем писать так, когда тоже самое ...


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

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

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