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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 19.10.2010, 22:52   #1
Santil
 
Регистрация: 19.10.2010
Сообщений: 9
По умолчанию Лаб. Си

Прошу помочь найти ошибку(и)

Простенькая лаба, но почему-то программа работает некорректно...
Задача: определить принадлежит ли точка(с введёнными R,X,Y) к графику, или нет.
Функция на картинке Y=X^2

Цитата:
#include <stdio.h>
#include <conio.h>
#include <math.h>

int main()
{
double R,X,Y,z ;
printf ("BBedute R,X,Y/n");
scanf ("%d%d%d", &R , &X , &Y);
z=-1;

if ((X>R) || (X<(R*z))) printf ("He BxoduT/n");
else if ((Y<0) || (Y>(R*R))) printf ("He BxoduT/n");
else if (Y>(X*X)) printf ("He BxoduT/n");
else printf ("BxoduT/n");


getch () ;
return (0);
}
Моя программа проверяет принадлежность точки к графиком путём отсеивания. Например, если значение Х превышает допустимая, программа выводит на экран сообщение "Не входит". Если подходит по всем параметрам, пишет "Входит".

Пробовал убирать логику. Не помогло, но! это упростило проверку... на первый if ошибок нет, работает корректно, первые проблемы с Y<0 (пытался менять 0 на другие значения... вплоть до ввода с клавиатуры тем же способом, что и другие переменные, не пропахало) дальше уже "вроде" есть проблеммы(а) с остальным.

П.С.
За не разборчивость кода программы прошу не бить) Сайт нагло сжирает пробелы, так что красиво не сделать)
Изображения
Тип файла: jpg PIC81(1287524390673).jpg (182.4 Кб, 147 просмотров)
Santil вне форума Ответить с цитированием
Старый 19.10.2010, 23:11   #2
sergey.d
Пользователь
 
Регистрация: 23.08.2010
Сообщений: 98
По умолчанию

если речь идет о попадании точки в заштрихованную область, то вот что спасет отца русской демократии:
Код:
printf((X >= -R && X <= R && Y >=0 && Y <= X*X) ? "Yes" : "No");
P.S. Да, и поправьте формат в scanf'е, вместо %d должны быть %lf

Последний раз редактировалось sergey.d; 19.10.2010 в 23:16.
sergey.d вне форума Ответить с цитированием
Старый 20.10.2010, 00:19   #3
Santil
 
Регистрация: 19.10.2010
Сообщений: 9
По умолчанию

Спасибо, чуть позже проверю...

Может кто ещё подскажет в чём была моя ошибка? Да) разбираться в моём коде надоедлевее чем сделать заново) Но блин) Так я ничему не научусь)
Santil вне форума Ответить с цитированием
Старый 20.10.2010, 00:54   #4
sergey.d
Пользователь
 
Регистрация: 23.08.2010
Сообщений: 98
По умолчанию

Цитата:
Сообщение от Santil Посмотреть сообщение
Спасибо, чуть позже проверю...

Может кто ещё подскажет в чём была моя ошибка? Да) разбираться в моём коде надоедлевее чем сделать заново) Но блин) Так я ничему не научусь)
Хм, а что, неверный формат в scanf уже и не ошибка? Ради интереса, не исправляя программу, вставьте контрольную печать введенных значений -- может, что и прояснится. Насчет логики проверки -- на первый взгляд она правильная, но избыточная.

Последний раз редактировалось sergey.d; 20.10.2010 в 00:58.
sergey.d вне форума Ответить с цитированием
Старый 20.10.2010, 18:59   #5
Santil
 
Регистрация: 19.10.2010
Сообщений: 9
По умолчанию

Хм... Проверил, спасибо. Ошибка была именно в СканФ... Думал что она ещё где-нибудь. В общем от всей души благодарю)
Santil вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
лаб. раб DartDayring Общие вопросы C/C++ 15 28.02.2010 12:39
Написать прогу(лаб.) azot13 Общие вопросы C/C++ 4 19.10.2009 00:28
составить программу лаб xz386 Общие вопросы C/C++ 4 12.10.2009 20:59
Лаб работа Данияр Помощь студентам 4 11.10.2009 12:04
Решение лаб, фортран pandamonic Фриланс 1 23.05.2009 16:29