Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > IT форум > Помощь студентам
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 27.03.2013, 14:23   #1
Goliath350
 
Регистрация: 27.03.2013
Сообщений: 5
По умолчанию задачи на условный оператор if в С

Добрый день.
задали сделать 2 несложных задачки. я все сделал но может Вы подскажите как можно проще.

Задача 1: Даны три целых числа: A, B, C. Проверить истинность высказывания: «Справедливо двойное неравенство A < B < C».


Цитата:
#include <stdio.h>
#include <stdlib.h>
main()
{
float a, b, c;
printf ("Vvedite A, B, C: ");
scanf ("%f %f %f", &a, &b, &c);
if(a>b)
printf ("net, A>B\n");
else
{
if (b<c)
printf ("da, A<B<C\n");
else
printf ("net, B>C\n");
}
system ("PAUSE");
return 0;
}
Задача 2:3.2. Даны три целых числа. Найти количество положительных и количество отрицательных чисел в исходном наборе.

Цитата:
#include <stdio.h>
#include <stdlib.h>
main()
{
int a, b, c, p, n;
printf ("Vvedite A, B, C: ");
scanf ("%d %d %d", &a, &b, &c);
p=0;
n=0;
if(a>0)
p=++p;
else
{
if (a<0)
n=++n;
else
printf ("pervoe chislo nol'\n");
}
if(b>0)
p=++p;
else
{
if (b<0)
n=++n;
else
printf ("vtoroe chislo nol'\n");
}
if(c>0)
p=++p;
else
{
if (c<0)
n=++n;
else
printf ("tret'e chislo nol'\n");
}
printf(" polozhitel'nyh chisel %d \n otricatel'nyh chisel %d \n", p, n);
system ("PAUSE");
return 0;
}
Goliath350 вне форума Ответить с цитированием
Старый 27.03.2013, 16:17   #2
IzIFRag
Пользователь
 
Аватар для IzIFRag
 
Регистрация: 05.05.2010
Сообщений: 15
По умолчанию

в первом условие можно сделать:
Код:
(a<b)&&(b<c)
IzIFRag вне форума Ответить с цитированием
Старый 27.03.2013, 16:31   #3
Abstraction
Старожил
 
Аватар для Abstraction
 
Регистрация: 25.10.2011
Сообщений: 3,178
По умолчанию

Цитата:
Задача 2:3.2. Даны три целых числа. Найти количество положительных и количество отрицательных чисел в исходном наборе.
Код:
int main(void){
  int numbers[3];
  int positive=0, negative=0;

  for(int i=0; i<3; ++i){
    scanf("%d", &numbers[i]);
    if(numbers[i]>0) ++positive;
    if(numbers[i]<0) ++negative;
  }

  printf("Numbers: positive - %d, negative - %d", positive, negative);

  return 0;
}
Так код не дублируется и всегда можно поменять количество вводимых чисел на любое другое. Кроме того, инкремент и так меняет то, к чему применён, дополнительного присваивания делать не надо.
Abstraction вне форума Ответить с цитированием
Старый 28.03.2013, 12:51   #4
Goliath350
 
Регистрация: 27.03.2013
Сообщений: 5
По умолчанию

Спасибо ребята.
Goliath350 вне форума Ответить с цитированием
Старый 03.04.2013, 03:28   #5
Goliath350
 
Регистрация: 27.03.2013
Сообщений: 5
По умолчанию

не могу понять как задать чему принадлежит х???


Цитата:
Для данного вещественного x найти значение следующей функции f, принимающей значения целого типа: f(x) =

0, если x < 0,
1, если x принадлежит [0, 1), [2, 3), … ,

–1, если x принадлежит [1, 2), [3, 4), … .

Последний раз редактировалось Goliath350; 03.04.2013 в 03:30.
Goliath350 вне форума Ответить с цитированием
Старый 03.04.2013, 06:11   #6
Smitt&Wesson
Старожил
 
Аватар для Smitt&Wesson
 
Регистрация: 31.05.2010
Сообщений: 13,543
По умолчанию

Условие невыполнимо. Пересекающиеся множества.
1 != 012 т.к 1234, пересекаются. Взаимоисключающие значения.
Измените условия задачи.
Пиши пьяным, редактируй трезвым.
Справочник по алгоритмам С++ Builder
Smitt&Wesson вне форума Ответить с цитированием
Старый 03.04.2013, 06:41   #7
Hemul
Форумчанин
 
Регистрация: 03.10.2010
Сообщений: 321
По умолчанию

Цитата:
Сообщение от Goliath350 Посмотреть сообщение
не могу понять как задать чему принадлежит х???
если x<0 то ответ = 0
иначе если целая часть вещественного числа четна то ответ=1
иначе ответ = -1

Целую часть вещественного числа можно брать приведением к int
Код:
(int)double_var
Hemul вне форума Ответить с цитированием
Старый 03.04.2013, 13:32   #8
Goliath350
 
Регистрация: 27.03.2013
Сообщений: 5
По умолчанию

Цитата:
Сообщение от Hemul Посмотреть сообщение
если x<0 то ответ = 0
иначе если целая часть вещественного числа четна то ответ=1
иначе ответ = -1

Целую часть вещественного числа можно брать приведением к int
Код:
(int)double_var
спасибо.
просто int еще не разбирали и я думал как можно по другому
Goliath350 вне форума Ответить с цитированием
Старый 03.04.2013, 14:05   #9
Abstraction
Старожил
 
Аватар для Abstraction
 
Регистрация: 25.10.2011
Сообщений: 3,178
По умолчанию

Цитата:
просто int еще не разбирали и я думал как можно по другому
floor(). 10 символов.
Abstraction вне форума Ответить с цитированием
Старый 04.04.2013, 13:31   #10
Goliath350
 
Регистрация: 27.03.2013
Сообщений: 5
По умолчанию

Цитата:
Сообщение от Abstraction Посмотреть сообщение
floor(). 10 символов.
и это тоже.
может можно через простые операции
Goliath350 вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Не могу решить задачи условный оператор С++ atavar Общие вопросы C/C++ 6 06.10.2012 20:31
Условный оператор,оператор цикла и массив Klark73 Microsoft Office Excel 1 19.12.2011 17:09
Оператор выбора или условный оператор[Перенесено из JavaSE] merhaba1992 Помощь студентам 1 20.01.2011 17:06
Помогите в решение задачи на условный оператор Bolt19 Помощь студентам 1 10.11.2009 08:10