01/10/2018, 00:21
Nhờ các anh chị sửa lỗi vào ra file bài toán Sắp xếp chọn này giúp em
YÊU CẦU:
Input: file DAYSO.INP gồm:
• Dòng 1 chứa số n không quá 100
• Dòng 2 ghi n số nguyên không quá 9 chữ số (có thể ngẫu nhiên).
Cài đặt thuật toán sắp xếp chọn. Ghi ra file SXCHON.OUT tất cả các bước thực hiện thuật toán
Đây là đoạn code của em. Lỗi vào ra cơ bản
import java.util.*;
import java.io.*;
public class Bai01 {
public static void docFile(int a[], int n, Scanner in) {
for (int i = 0; i < n; i++) {
a[i] = in.nextInt();
}
}
public static void selection_sort(int a[], int n) {
for (int i = 0; i < n - 1; i++) {
int min = i;
for (int j = i + 1; j < n; j++) {
if (a[j] < a[min]) {
min = j;
}
}
if (min != i) {
int temp = a[min];
a[min] = a[i];
a[i] = temp;
}
ghiFile(a,out); // LỖI Ở CHỖ NÀY
}
}
public static void ghiFile(int a[], PrintWriter out) {
for (int i = 0; i < a.length; i++) {
out.print(a[i] + " ");
}
}
public static void main(String[] args) {
int n, a[] = new int[100];
try {
Scanner in = new Scanner(new File("DAYSO.INP"));
PrintWriter out = new PrintWriter(new File("SAPXEPCHON.OUT"));
n = in.nextInt();
docFile(a, n, in);
selection_sort(a, n);
ghiFile(a, out);
out.close();
} catch (Exception e) {
System.out.println("Co loi xay ra " + e.toString());
}
}
}
Em cảm ơn nhiều ạ ! Mong anh chị cùng giúp đỡ.
Bài liên quan
Mình thấy lỗi đó là do trong hàm
selection_sort()
không có biết biếnout
là cái gì. Cách giải quyết là pass biếnout
từ hàmmain
vàoselection_sort
là được. Hàmselection_sort
trở thànhpublic static void selection_sort(int a[], int n, PrintWriter out)
và tại hàmmain()
bạn thêm biếnout
vào là được.Thắc mắc là tại sao bạn vừa dùng
ghiFile
tạiselection_sort()
rồi ởmain()
nữa. Nó sẽ ghi 2 lần đấy.Nói chung là sau khi sửa thì nó là như dầy:
Compile thì hết lỗi rồi nhưng mà kết quả khi chạy có đúng hay không thì mình không biết. Haha.
Mình mới học java được 1 ngày thôi, có gì sai thì chém nhẹ ạ
Nó vẫn còn lỗi bạn à ! Cảm ơn bạn vì mình đã sữa được rồi