Цикл выполняется только раз - C (СИ)

Узнай цену своей работы

Формулировка задачи:

задача 75: >
#include <stdio.h>
 #include <math.h>
 int main()
 {
 int x,y,z,p,k;
 printf("x = "); > scanf("%d",&x);
 printf("y = ");
 scanf("%d",&y);
 printf("z = ");
 scanf("%d",&z);
 k = 0; > p = x*y*z;
 while (p<0) {
 ++k;
 printf("%d\n",k);
 p = 0;
 }
Очень странный цикл, не нравится мне, он в любом случае только один раз выполнится, а всё последующее вообще ни одного. Что-то не то ты сделал. Если там задание про "без использования if", то имеется в виду, что нужно воспользоваться тем свойством, что логические операции возвращают 0 или 1 сами по себе и их можно вместе комбинировать при помощи && и ||. > while (p>0) {
 while (x*z*z*y < 0) {
 printf("%d\n",k);
 x = 0;
 }
 while (x*y*y*z < 0) { > printf("%d\n",k);
 x = 0;
 }
 while (x*x*y*z < 0) {
 printf("%d\n",k);
 x = 0; > }
 while (x*x*z*y >0) {
 ++k;
 printf("%d\n",k);
 x = 0;
 }  }
 return 0;
 }

Решение задачи: «Цикл выполняется только раз»

textual
Листинг программы
 int x,y,z,k;
 scanf("%d%d%d", &x, &y, &z);
 k=!((x*y*z > 0)&&((x*y<0)||(x*z<0)));
 printf ("%d\n", k);
 system("pause");
 return 0;

Объяснение кода листинга программы

  1. Объявляются четыре переменные типа int: x, y, z, k.
  2. С помощью функции scanf в переменные x, y, z считываются значения, вводимые пользователем.
  3. Переменная k принимает значение, равное логическому отрицанию выражения (xyz > 0)&&((xy<0)||(xz<0)).
  4. Выводится значение переменной k с помощью функции printf.
  5. С помощью функции system(pause) программа переходит в режим ожидания нажатия клавиши пользователем.
  6. Программа возвращает 0, завершая свою работу.

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

Оцени полезность:

12   голосов , оценка 3.917 из 5
Похожие ответы