30/09/2018, 16:20
[Hỏi] Xuất ra giá trị rác khi tìm phần tử lớn nhất trong mảng
Em đang làm bài tìm phần tử lớn nhất trong mảng và số lần lặp lại của phần tử đó. Mọi thứ gần như tốt nhưng khi em tìm phần tử lớn nhất, nó xuất ra một giá trị rất lớn (em xin tạm gọi nó là giá trị rác). Sau khi debug, em thấy vòng for chạy bình thường cho tới khi kết thúc vòng lặp thì max bỗng nhiên nhảy sang giá trị rác. Mọi người giúp em với
// Input Array
InputArray(A, n);
// Output Array
OutputArray(A, n);
// The maximum number of array
for(int x = 0; x <= n; x++){
if(A[x] > max){
max = A[x];
}
}
printf("
The highest number of array is %d", max);
Bài liên quan
gán max = a[0] trước
Cho em hỏi là tại sao ạ, em gán max = 0 rồi xét lần lượt từ A[0] không được hả anh
max = 0 rồi so sánh lần lượt A[0] -> A[n-1] với A[max] cũng đc. khi đó max là chỉ số của phần tử max
còn nếu max = 0 mà so sánh A[0]-> A[n-1] với max thì max là giá trị lớn nhất. đặt như này này không ổn, nếu phần tử âm hết thì sao? nên nếu muốn max lưu giá trị lớn nhất của mảng thì chỉ đặt max = 1 phần tử bất kì trong mảng ( có thể là A[0] -> A[n-1]) rồi cho chạy từ đầu đến hết mảng rồi so sánh. nhưng nên đặt là A[0] cho dễ nhìn.
Vậy phải sửa sao đây anh
mình mới sửa lại cmt, bạn xem lại nha
thêm max = a[0]; trước for thôi :v
dạ em thử rồi, vẫn bị như trên
sai đây nữa nè bạn.
1 mảng có n phần tử thì chỉ số của nó chỉ chạy từ 0->n-1 thôi nhé.
A, cám ơn anh, làm cái trên đúng mà xuống dưới lại quên
Đã sửa, cám ơn mọi người
chỗ này ấy, e có thể gõ là x<n. thế nhanh hơn 1 xíu.
2 cái tương đương nhau. vì x là số nguyên mà.
mới lớp 9 đã code bằng tiếng anh r, pro ghê :v
e đến lớp 11 mới đc biết đến cái lập trình đầu tiên Pascal.
trường quê không có mấy môn đó. T.T
mình vào năm 1 mới biết lập trình C có ăn được hay không, tiếc là ko ăn được
năm 2 mình mới đc học C. đang năm 2.
Học sinh năm 5 vẫn học C nè. hehe
tớ code nháp thử thế này có được không?
à, chuẩn rồi, trước e cũng cod thế này. cũng 1 cái đếm luôn, đỡ phải lặp thêm lần nữa.
Khi nào dùng ++time, khi nào dùng time++ đây anh.