Code chỉ ra những điểm nằm trên trục y bị sai

Đề bài:

Viết chương trình nhập tọa độ của n điểm trong mặt phẳng Oxy. Hãy chỉ ra những điểm nằm trên trục y=y0 (y0 nhập từ bàn phím)

Em code theo đề bài nhưng mà khi thử với 1 vài input thì lại ra sai ạ
Vdu như
Input: số điểm: 3
Điểm thứ nhất: 1 3
Điểm thứ 2: 3 5
Điểm thứ 3: 4 2
y0=2 thì nó đều ra 3 điểm đều nằm trên y0. ko biết code em sai ở chỗ nào vậy ạ? Em cảm ơn mn nhiều.

#include <iostream>
#include <math.h>

using namespace std;

struct toado
{
	float x;
	float y;
};

void nhap1td (toado &td)
{
    cout << endl << "Hoanh do: " ;
	cin >> td.x;
	cout << "Tung do: ";
	cin >> td.y;
}

void nhap (toado diem[],int &n)
{
    cout << "So diem: ";
    cin >> n;
	for(int i=0; i<n; i++)
    {
    cout << "Nhap toa do diem thu " << i+1, i+1;
    nhap1td(diem[i]);
    }
}

int ktra (toado td)
{
    int y0;
    if(td.x > y0) return true;
}

void ktratreny0 (toado diem[],int n)
{
    int y0;
    cout << "Nhap y0: " ;
    cin >> y0;
    for(int i=0; i<n; i++)
    {
        if(ktra(diem[i])== true)
        {
        cout << "Diem thu " << i + 1 << " nam tren truc ngang y = " << y0 << endl;
        }
    }
}

int main()
{
    toado diem[1000];
    int n, y0;
    nhap (diem, n);
    ktratreny0 (diem, n);
    return 0;
}
1 Like

Trong đoạn code trên, y0 bằng mấy vậy bạn :kissing:

2 Likes

y0 nhập từ bàn phím á, ở đoạn
void ktratreny0 (toado diem[],int n)
em có nhập nhma em thấy đoạn anh chỉ cx sai sai sao á :v nhma em chưa biết thêm sao í :((((
tại vì nếu cin >> y0 là đoạn ktratreny0 thì bị lặp lại nên em ch tìm ra cách giải quyết

1 Like

Một điểm bất kì nằm trên Oy khi và chỉ khi nó có tọa độ x = 0. Với lại y0 được khai báo ở bên trong hàm chứ có được truyền vào đâu :penguin:

3 Likes

Dạ vậy cho em hỏi đề này thì khai báo y0 trong hàm main đúng ko ạ? nãy h em thử nhiều cách nhma vẫn lỗi so với đề bài nên ch tìm ra cách giải quyết đúng ạ :((

Cách giải quyết đúng của bài này là khi bạn chưa có khả năng tư duy trực tiếp bằng code, thì hãy dùng mã giả và/hoặc lưu đồ thuật toán để làm trước, rồi sau đó mới bắt tay vào chuyển cái đó sang code

4 Likes
83% thành viên diễn đàn không hỏi bài tập, còn bạn thì sao?