Форум программистов, компьютерный форум, киберфорум
C для начинающих
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.73/11: Рейтинг темы: голосов - 11, средняя оценка - 4.73
0 / 0 / 0
Регистрация: 13.10.2015
Сообщений: 1
1

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

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

Author24 — интернет-сервис помощи студентам
Что делает эта строчка? ++x && ++y || ++z;
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
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...

5
603 / 403 / 212
Регистрация: 30.04.2017
Сообщений: 743
07.06.2018, 16:11 2
Увеличивает значения переменных
C
1
2
3
x=x+1;
y=y+1;
z=z+1;
0
1 / 1 / 1
Регистрация: 25.09.2014
Сообщений: 49
07.06.2018, 22:55 3
Или увеличиваешь x и у на единицу,или увеличиваешь z на 1 (++x && ++y)||(++z)
0
Супер-модератор
Эксперт Pascal/DelphiАвтор FAQ
32835 / 21172 / 8148
Регистрация: 22.10.2011
Сообщений: 36,431
Записей в блоге: 8
08.06.2018, 01:07 4
Цитата Сообщение от Глеб Хвалевко Посмотреть сообщение
Что делает эта строчка?
Возвращает результат логического типа: либо инкрементированное значение x НЕ равно 0 и при этом инкрементированное же значение y также НЕ равно 0, либо нулю не равно инкрементированное значение z.
0
603 / 403 / 212
Регистрация: 30.04.2017
Сообщений: 743
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
Модератор
Эксперт по электронике
8908 / 6677 / 918
Регистрация: 14.02.2011
Сообщений: 23,521
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
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
08.06.2018, 13:47
Помогаю со студенческими работами здесь

Каким можно заменить операцию &&
Приветствую #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);...

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

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

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


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

Или воспользуйтесь поиском по форуму:
6
Ответ Создать тему
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru