30/09/2018, 21:23

Lỗi xuất mảng có kết quả không như mong muốn

Mọi người cho em hỏi việc xuất mảng nó ra những kết quả này là gì(vị trí hay kí tự rác…) và làm sao để hiện kết quả như mình mong muốn?



Mọi nười có thể cho mình ý kiến về cách code bài này như vậy như thế nào?
Đế bài :Nhập và xuất mảng tìm ra giá trị lớn nhất của mảng.
Mình cảm ơn!!!

Phạm Minh Anh Hữu viết 23:25 ngày 30/09/2018

Bạn sửa lại dòng:

xuat_mang(mang, 100);
printf("Max = ", xuat_mang);

thành

int max=xuat_mang(mang, nPhanTu);
printf("Max = %d",max) ;

hoặc

printf("Max = %d",xuat_mang(mang, nPhanTu)) ;

Lưu ý: Khai báo và nhập vào biến nPhanTu là số phần tử của mảng

DOAN VO TRONG HIEU viết 23:40 ngày 30/09/2018

Cảm ơn bạn,làm sao để hiện ra kết quả mặc dù mình chỉ khai báo nphantu ở hàm chính và nhập n ở bên trong hàm xuất mảng vậy bạn?

Phạm Minh Anh Hữu viết 23:30 ngày 30/09/2018

Thì bạn phải khai báo nPhanTu ở hàm nhập là reference hoặc pointer.

// Khai báo hàm nhập.
void nhapMang(int mang[], int *nPhanTu) // Hoặc int &nPhanTu.
{
// code của bạn.
}
void main()
{
        //code của bạn        
        nhapMang(mang, nPhanTu)// Gọi lại hàm 
}
Người bí ẩn viết 23:34 ngày 30/09/2018

Nhìn sơ qua thì bạn không nên để #define max 100 mà phải để #define MAX 100

Sửa void nhap_mang(int mang[], int n) thành void nhap_mang(int mang[], int &n) vì bạn nhập n ngay trong hàm nhập mảng nên phải để tham chiếu cho nó !

Ở hàm xuất mảng hình như dư 1 dấu } ở gần cuối và không nên return ngay trong vòng for mà phải để return ngoài vòng for .

Ở hàm Main nên khai báo thêm biến n (số lượng phần tử)
và thay như sau:
nhap_mang(mang, 100) thành nhap_mang(mang, n)

Xóa dòng xuat_mang(int mang, 100) đi.

Sửa printf("xuat gia tri lon nhat mang %d", xuat_mang) thành printf("xuat gia tri lon nhat mang %d", xuat_mang(mang, n))

Nếu bạn thấy phiền hoặc không quen tay khi dùng hàm scanf_s mà muốn dùng hàm scanf bình thường thì làm như sau:

Click chuột phải vào Project chọn Properties
Ở ô bên trái chọn theo thứ tự sau: Configurations Properties => C/C++ => Preprocessor
Nhìn qua ô bên phải, dòng đầu tiên Preprocessor Definitions, bấm chuột vào dòng đó, sẽ có 1 nút mũi tên ở cuối dùng hiện lên, bấm vào mũi tên đó và chọn Edit
Ở ô đầu tiên trong cửa số vừa bật ra Preprocessor Definitions đánh dòng này vào: _CRT _NONSTDC _NO _WARNINGS .
Chọn lần lượt: OK => Apply => OK
Ở phần đầu code (line 1), thêm dòng này (trước line #include <stdio.h>) : #define _CRT_SECURE_NO_WARNINGS
Vậy là giờ bạn thoải mái dùng hàm scanf và getch(); mà không sợ lỗi nhé

Tao Không Ngu. viết 23:40 ngày 30/09/2018

This post was flagged by the community and is temporarily hidden.

Người bí ẩn viết 23:24 ngày 30/09/2018

Ham scanf viet la vay ban ? @_@

Trong Microsoft Visual Studio 2015 nó không cho dùng hàm scanf mà phải dùng hàm scanf_s . Tương tự getch()_getch() .

Chỉnh sửa 1 chút như trên mới làm được !

DOAN VO TRONG HIEU viết 23:36 ngày 30/09/2018

Cảm ơn bạn nhiều nhé!!!

Bài liên quan
0