Определить, в какой четверти будет точка - C (СИ)

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

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

здравствуйте. Я только буквально неделю назад начал проходить язык С. Для создания проектов и компилирования использую MS visual C++ express edition. Так вот, задача заключается в том, что бы по данным Х и Y определить, в какой четверти будет точка. По идее задача простая, то есть если Х и Y больше нуля, то это первая четверть, если Хменьше нуля, а у больше нуля, то вторая и т.д.. Но у меня тут возникла проблема - при исключении всех явно не верных случаев (х и у равны нулю, или если точка лежит на осях х или у), какие бы даные я ни вводил, высвечивается всё равно так, что точка находится в первой четверти, хотя не должна... прошу помощи.
// Ulesanne2.cpp: определяет точку входа для консольного приложения.
//
 
#include "stdafx.h"
#include <iostream>
#include <math.h>
#include <conio.h>
using namespace std;
 
int _tmain(int argc, _TCHAR* argv[])
{
double x, y, ch;
ch=0;
cout<<"Enter X"<<endl<<"X=";
cin>>x;
cout<<"Enter Y"<<endl<<"Y=";
cin>>y;
if ((x>0)&&(y>0)) ch=1;
else if ((x<0)&&(y>0)) ch=2;
    else if ((x<0)&&(y<0)) ch=3;
        else if ((x>0)&&(y<0)) ch=4;
            else if ((x==0)&&(y!=0)) {cout<<"This point is at the Y-axis."<<endl;
            getch ();
            return 0;}  
            else if ((x!=0)&&(y==0)) {cout<<"This point is at the X-axis"<<endl;
                getch ();
                return 0;}  
                else {
                    cout<<"This point is at the origin";
                    getch ();
                    return 0;}
if (ch=1) cout<<"This point is in the first quarter";
else if (ch=2) cout<<"This point is on the second quarter";
    else if (ch=3) cout<<"This point is on the third quarter";
        else if (ch=4) cout<<"This point is on the fourth quarter";
        
            else if ((ch<=0)||(ch>=5)) cout<<"An unexpected error occured. The program will now close.";
            cout<<ch;
    getch ();
    return 0;
}
я пытался отладить задачу, но у меня что-то не получается всё равно. И кстати, хочу обратить внимание - я только начал изучать С,поэтому моя программа обычно заканчивается на том или ином результате.

Решение задачи: «Определить, в какой четверти будет точка»

textual
Листинг программы
#include <conio.h>
 
int main()
{
    int x, y, ch;
    ch=0;
    printf("Enter X\nX=");
    scanf_s("%d", &x);
    printf("Enter Y\nY=");
    scanf_s("%d", &y);
    if (x > 0 && y > 0) 
        ch=1;
    if (x < 0 && y > 0)
        ch=2;
    if (x < 0 && y < 0)
        ch=3;
    if (x > 0 && y < 0)
        ch=4;
    if (x == 0 && y != 0) 
    { 
        printf("This point is at the Y-axis.\n");
        _getch ();
        return 0;
    }
    if (x !=0 && y == 0)
    {
        printf("This point is at the X-axis\n");
        _getch ();
        return 0;
    }
    if(x == 0 && y == 0)
    {
        printf("This point is at the origin\n");
        _getch ();
        return 0;
    }
    switch(ch)
    {
        case 1:
            printf("This point is in the first quarter");
            break;
        case 2: 
            printf("This point is on the second quarter");
            break;
        case 3:
            printf("This point is on the third quarter");
            break;
        default:
            printf("This point is on the fourth quarter");
    }
    _getch ();
    return 0;
}

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

  1. Объявлены переменные x, y, ch типа int.
  2. Переменная ch инициализируется значением 0.
  3. Выводится приглашение для ввода значения переменной x.
  4. С помощью функции scanf_s в переменную x записывается введенное пользователем значение.
  5. Выводится приглашение для ввода значения переменной y.
  6. С помощью функции scanf_s в переменную y записывается введенное пользователем значение.
  7. Осуществляется проверка: если x > 0 и y > 0, то переменная ch принимает значение 1.
  8. Осуществляется проверка: если x < 0 и y > 0, то переменная ch принимает значение 2.
  9. Осуществляется проверка: если x < 0 и y < 0, то переменная ch принимает значение 3.
  10. Осуществляется проверка: если x > 0 и y < 0, то переменная ch принимает значение 4.
  11. Осуществляется проверка: если x == 0 и y != 0, то выводится сообщение This point is at the Y-axis и программа завершается.
  12. Осуществляется проверка: если x !=0 и y == 0, то выводится сообщение This point is at the X-axis и программа завершается.
  13. Осуществляется проверка: если x == 0 и y == 0, то выводится сообщение This point is at the origin и программа завершается.
  14. Осуществляется проверка значения переменной ch с помощью оператора switch.
  15. Если ch равно 1, то выводится сообщение This point is in the first quarter.
  16. Если ch равно 2, то выводится сообщение This point is on the second quarter.
  17. Если ch равно 3, то выводится сообщение This point is on the third quarter.
  18. Если ch не равно 1, 2 и 3, то выводится сообщение This point is on the fourth quarter.
  19. Вызывается функция _getch, которая предназначена для приостановки выполнения программы до тех пор, пока пользователь не нажмет какую-либо клавишу.
  20. Программа возвращает значение 0, что означает успешный конец работы.

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


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

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

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