Bài tập tìm max min trong mảng bị sai

Chào các bạn. Các bạn có thể xem giúp mình mình sai cái gì không bạn? Mình thắc mặc quá. Cám ơn bạn (hình ở dưới, có cả input và output)

bạn chép code rồi để vô cặp dấu 3 dấu huyền nhé … để tiện anh em xem và hổ trợ cho ban … xem cách dụng markdown ngoài trang chủ

Đây bạn

#include <bits/stdc++.h>
using namespace std;
ifstream fi("hehe.inp");
ofstream fo("hehe.out");
int main()
{
    int n, mi, ma;
    fi >> n;
    int x[n], y[n];
    for (int i=0; i<=n; i++)
    {
        fi >> x[n];
    }
    for (int i=0; i<=n; i++)
    {
        fi >> y[n];
    }
    ma = x[0]; mi = y[0];
    for (int i=0; i<=n; i++)
    {
        if (x[i] >= ma) ma=x[i];
    }
    for (int i=0; i<=n; i++)
    {
        if (y[i] <= mi) mi=y[i];
    }
    fo << ma << endl;
    fo << mi << endl;
    fi.close(); fo.close();
}

Bạn nên dùng

void open (const char* filename,  ios_base::openmode mode = ios_base::in);

để mở file, sau đó mới có thể dùng

fi >> n;

Hoặc nếu bạn muốn dùng constructor của ifstream, thì dùng theo kiểu thế này:

std::ifstream ifs ("test.txt", std::ifstream::in);
1 Like

Ok bạn. Nhưng bạn thấy bài trên code lỗi gì không bạn? Có cái hình input output ở trên. Mình xem hoài mà không biết lỗi ở đâu hết bạn :frowning:

A post was merged into an existing topic: Topic lưu trữ các post off-topic - version 3

int x[n], y[n];

trong C++ ko có kiểu khai báo mảng động này. Xài std::vector như mảng động.

vòng lặp từ i=0 tới i<=n là n+1 lần rồi. ví dụ n=3 thì i = 0, 1, 2, 3 là 4 lần rồi. Chạy tới i<n thôi.

#include <iostream>
#include <vector>
#include <fstream>

int main()
{
    std::ifstream fi("hehe.inp");
    if (!fi) //kiểm tra có mở được file hay ko
    { 
         std::cerr << "Cannot open file\n";
         return 1;
    }

    int n;
    fi >> n;
    std::vector<int> x(n); //thay vì viết int x[n];
    std::vector<int> y(n);

    for (int i = 0; i < n; i++) fi >> x[i];
    for (int i = 0; i < n; i++) fi >> y[i];
        
    fi.close(); //close file sau khi đọc xong

    // tìm min max, output ra fo...
}
1 Like
83% thành viên diễn đàn không hỏi bài tập, còn bạn thì sao?