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

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

Вернуться   Форум программистов > C/C++ программирование > Общие вопросы C/C++
Регистрация

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 12.10.2009, 12:55   #1
Jasper92
Форумчанин
 
Аватар для Jasper92
 
Регистрация: 07.02.2009
Сообщений: 110
По умолчанию Си

Это моя первая программа на Си. Помогите пожалуйста исправить программу.
Задача: написать программу которая считает по этому условию
y=-x-2 если -2<=х<=1
y=x если 1<x<=1
y=-x+2 если 1<x<=2
вот моя программа
Код:
#include <stdio.h>
#include <conio.h>
void main()
{

	double x,y;
   printf ("Vvedite x");
   scanf ("%d", &x);
    if (x>=-2<=2);          
	{  if  (-2<=x<=1) y=-x-2;     
       if  (1<x<=1)   y=x;  		
       if  (1<x<=2)    y=-x+2;	
	}
	else printf("nekorektno X");
	printf (" Y= %d",y);
   getch ();
}

Последний раз редактировалось Stilet; 12.10.2009 в 13:00.
Jasper92 вне форума Ответить с цитированием
Старый 12.10.2009, 13:11   #2
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

Я не очень люблю scanf и иже с ним функи, Но вот условия я бы написал так:
Код:
	if ((-2<=x)&&(x<=1)) {
	 y=-x-2;
	}
	 else
	{
	 if  ((1<x)&&(x<=1)) {y=x;} else
	  {
	   if  ((1<x)&&(x<=2))    y=-x+2;
	  }
	}
Следуя твоей логике конечно.

А сам бы я предпочел такой вариант:
Код:
#include <iostream.h>
void main()
{

	double x,y;
   cout<<"Vvedite x\n";
   cin>>x;
  cout<<((-2<=x)&&(x<=1))?(-x-2):((1<x)&&(x<=1)?x:(-x+2));
   cin.get();
}
I'm learning to live...

Последний раз редактировалось Stilet; 12.10.2009 в 13:14.
Stilet вне форума Ответить с цитированием
Старый 12.10.2009, 13:13   #3
m0nax
Форумчанин
 
Аватар для m0nax
 
Регистрация: 25.09.2009
Сообщений: 525
По умолчанию

Цитата:
y=-x-2 если -2<=х<=1
y=x если 1<x<=1
y=-x+2 если 1<x<=2
Код:
if ( x>=-2 && x<=1 ) y = -x-2;
if ( x>1 && x<=1 ) y = x ;
if ( x>1 && x<=2) y = -x+2 ;

Последний раз редактировалось m0nax; 12.10.2009 в 13:16.
m0nax вне форума Ответить с цитированием
Старый 12.10.2009, 13:22   #4
Blade
Software Engineer
Участник клуба
 
Аватар для Blade
 
Регистрация: 07.04.2007
Сообщений: 1,618
По умолчанию

Цитата:
Сообщение от Stilet Посмотреть сообщение
А сам бы я предпочел такой вариант:
Он пишет на Си
Мужество есть лишь у тех, кто ощутил сердцем страх, кто смотрит в пропасть, но смотрит с гордостью в глазах. (с) Ария
Blade вне форума Ответить с цитированием
Старый 12.10.2009, 14:03   #5
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

Цитата:
Он пишет на Си
Я заметил потому и написал: "сам бы я предпочел такой вариант"
I'm learning to live...
Stilet вне форума Ответить с цитированием
Старый 12.10.2009, 15:56   #6
ds.Dante
Старожил
 
Аватар для ds.Dante
 
Регистрация: 06.08.2009
Сообщений: 2,992
По умолчанию

Блог Джоэла Спольского - Совет студентам изучающим вычислительную технику
Цитата:
Выучите С до окончания учебы. ... Обратите внимание, я не сказал C++. И хотя С используется все реже и реже, он остается лингва-франка (прим. пер.: lingua franca - общий язык для общения "разноязычных" людей) для работающих программистов. Это тот язык, который используется чтобы общаться друг с другом и, что еще более важно, он гораздо ближе к машине, чем “современные” языки, которым вас учат в колледже ... Вам нужно, как минимум, семестр чтобы стать ближе к машине, иначе Вы никогда не сможете создавать эффективный код на языках более высокого уровня. Вы никогда не сможете работать над компиляторами и операционными системами, а это одни из самых лучших рабочих мест для программистов. Вам никогда не доверят создавать архитектуру больших проектов. Меня не интересует сколько Вы знаете о последовательностях, замыканиях и обработке исключений, если Вы не можете объяснить почему while (*s++ = *t++); копирует строку, или, если это для Вас не одна из самых естественных вещей в мире, ну, тогда Вы программируете основываясь на суевериях, подобно доктору, который не зная анатомии отпускает рецепт основываясь на том, что говорит аптекарша.
ds.Dante вне форума Ответить с цитированием
Старый 14.10.2009, 13:09   #7
Jasper92
Форумчанин
 
Аватар для Jasper92
 
Регистрация: 07.02.2009
Сообщений: 110
По умолчанию

Как найти четные и нечетные элименты на си
Jasper92 вне форума Ответить с цитированием
Старый 14.10.2009, 13:12   #8
pproger
C++ hater
СтарожилДжуниор
 
Аватар для pproger
 
Регистрация: 19.07.2009
Сообщений: 3,333
По умолчанию

2Jasper92 поделить число на 2 и проверить остаток
I invented the term Object-Oriented, and I can tell you I did not have C++ in mind. (c)Alan Kay

My other car is cdr.

Q: Whats the object-oriented way to become wealthy?
A: Inheritance
pproger вне форума Ответить с цитированием
Старый 21.10.2009, 13:34   #9
Jasper92
Форумчанин
 
Аватар для Jasper92
 
Регистрация: 07.02.2009
Сообщений: 110
По умолчанию

Я написал программу
Код:
#include <stdio.h>
#include <conio.h>
int main ()
{
	int  x=1;
	printf ("Vvedite x");
	scanf ("%i",&x);	
			switch (x)
	{
			case 1:  printf ("001 %c"); break;
			case 2:  printf ("002 %c"); break;
			case 3:  printf ("003 %c"); break;
			case 4:  printf ("004 %c"); break;
			case 5:  printf ("005 %c"); break;
			case 6:  printf ("006 %c"); break;
			case 7:  printf ("007 %c"); break;
			default: ;				
	}
	getch ();
}
но мне нужно ввести ограничение х>=1 и x<=7 если не входит в это ограничение то выводится сообщение не коректноректно

Последний раз редактировалось Stilet; 21.10.2009 в 14:09.
Jasper92 вне форума Ответить с цитированием
Старый 21.10.2009, 13:50   #10
nazavrik
Форумчанин
 
Аватар для nazavrik
 
Регистрация: 01.09.2008
Сообщений: 178
Сообщение

Цитата:
но мне нужно ввести ограничение х>=1 и x<=7 если не входит в это ограничение то выводится сообщение не коректноректно
Так поставь перед switch (x) проверку:

Код:
if(x<1 || x>7)
{   
   printf("Некорректный ввод!\n");
   return;
}
Быть радикальным - значит понять вещь в её корне. К.Маркс

Последний раз редактировалось nazavrik; 21.10.2009 в 14:08.
nazavrik вне форума Ответить с цитированием
Ответ


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