Hello everyone! I am writing a program that is supposed to get input of n points' descartes coordinates and then outputs something like "Most number of points lie in the first/second/third/fourth quadrant." And if there are points that lie on the x axis it outputs: "The x,y point(s) lie on the X axis."
Here are my problems:
1.) I defined a maximum relation, but if there are e.g. 5 points in the first quadrant and 5 points in the second (and third and fourth have less points in them) then it says: "The maximum amount of points lie in the first quadrant." and also: "The maximum amount of points lie in the second quadrant." Is there any way to make it say that these two quadrants have the most points in a better way? Do I have to put it in manually like: if first=second, then write: ...etc.
2.) Normally, the program waits till the input is over to write something on the screen, but the only way I could solve the second part of the question was by making the program write: "The 0,y points lies on the X axis." as soon as that point is input. Is there any way I can store this and in the end list the points that lie on the X axis?
So here is my code and thank you in advance for your help!!
Code:#include <iostream> #include <cstdlib> using namespace std; //define type: struct TPont{double x,y;} ; //define the maximum relation: int max(int a,int b,int c,int d) { int max_val=a; if (b>max_val) max_val=b; if (c>max_val) max_val=c; if (d>max_val) max_val=d; return max_val; } int main() { //input TPont p; int n; //output //checking the validity of input bool hiba; string tmp; //intializing quadrants int first=0; int second=0; int third=0; int fourth=0; //inputting do{ cout << "How many points will you be checking for?" << endl; cin >> n; error=cin.fail(); if (error) { cout << "Wrong input!" <<endl; cin.clear(); getline(cin,tmp,'\n'); } }while (error); for(int i=0;i<n;i++){ do{ cout << "Please type the x and y coordinates of point p! " << endl; cin >> p.x >> p.y; error=cin.fail(); if (error) { cout << "Wrong input!" <<endl; cin.clear(); getline(cin,tmp,'\n'); } }while (error); //counting how many points lie in each quadrant if (p.x>0) { if (p.y>0) first++; else if (p.y<0) fourth++; }else if (p.x<0){ if (p.y>0) second++; else if (p.y<0) third++; } //If any points lie on the x axis then the program writes that if (p.x==0) { cout << "The (" << p.x << ", "<< p.y <<")" << "point lies on the X axis." <<endl; } } //checking for maximum and writing it on the screen if (first==max(first, second, third, fourth)) { cout << "Most points lie in the first quadrant." <<endl; } if (second==max(first, second, third, fourth)) { cout << "Most points lie in the second quadrant." <<endl; } if (third==max(first, second, third, fourth)) { cout << "Most points lie in the third quadrant." <<endl; } if (fourth==max(first, second, third, fourth)) { cout << "Most points lie in the fourth quadrant." <<endl; } system("pause"); return 0; }


Reply With Quote

Bookmarks