30/09/2018, 17:22
Tìm khách hàng có số tiền nhỏ nhất?
Mình có đề tập như sau
Nhập thông tin của một khách hàng tại một cửa hàng thời trang gồm các thông tin sau: mã số khách hàng, họ và tên,tổng tiền
a.khai báo cấu trúc dữ liệu để quản lí được thông tin khach hàng đó tại công ty
b. Hãy xd hàm để tìm khách hàng có tổng tiền ít nhất trong danh sách khách hàng đã mua hàng tại cty đó.
Mình không biết làm câu b, đây là code hiện tại
#include<iostream>
#include<string>
using namespace std;
struct KHACHHANG
{
string MKH;
string HovaTen;
unsigned int Tien;
};
void Nhap(KHACHHANG& kh)
{
fflush(stdin);
cout<<"
Moi ban nhap ma khach hang:";
getline(cin,kh.MKH);
cout<<"
Moi ban nhap ho va ten:";
getline(cin,kh.HovaTen);
cout<<"Moi ban nhap so tien :";
cin>>kh.Tien;
}
void Xuat(KHACHHANG kh)
{
cout<<"
Ma khach hang :";
cout<<kh.MKH ;
cout<<"
Ho va ten khach hang :";
cout<<kh.HovaTen ;
cout<<"
So tien :";
cout<<kh.Tien ;
}
void NhapDSKH(KHACHHANG a[] ,int &n)
{
for(int i=0 ; i<n; i++)
{
cout<<"Moi ban nhap khach hang thu"<<i+1;
Nhap(a[i+1]);
}
}
void XuatDSKH(KHACHHANG a[] ,int n)
{
for(int i=0 ; i<n; i++)
{
cout<<"
Thong tin khach hang thu :"<<i+1;
Xuat(a[i+1]);
}
}
struct QUANLIKHACHHANG
{
KHACHHANG* list;
int n;
};
KHACHHANG TimKHcotienMin(QUANLIKHACHHANG QLKH)
{
KHACHHANG KHmin = QLKH.list[0];
unsigned int Tien = QLKH.list[0].Tien;
for(int i = 0; i<QLKH.n ;i++)
{
if(QLKH.list[i].Tien < Tien)
{
KHmin = QLKH.list[i];
Tien = QLKH.list[i].Tien;
}
}
return KHmin;
}
void main()
{
KHACHHANG a[50] ;
int n;
QUANLIKHACHHANG qlkh;
qlkh.list = NULL;
qlkh.n = 0;
do
{
cout<<"
Moi ban nhap so luong khach hang :";
cin>>n;
if(n<0)
{
cout<<"
Nhap sai yeu cau nhap lai !";
}
}while(n<0);
NhapDSKH (a,n);
XuatDSKH(a,n);
KHACHHANG KHmin = TimKHcotienMin(qlkh);
cout<<"
khach hang co tien min la :"<<endl;
Xuat(KHmin);
system("pause");
}
Bài liên quan
nhìn đau mắt quá, bạn post code như thế này đi:
tiện thể bạn nói luôn lỗi hay sai như thế nào nhé.
Phải định nghĩa lỗi cụ thể mới dễ tìm @Hong_Hue à
bạn sửa giúp mình hàm tìm khách hàng có so tien min voi
a sua giup e.bài cho nhập vào danh sach khach hàng mua hàng trong công ty .và tim ra khách hàng có sô tiền mua là ít nhất ạ
Bạn phải nói rõ lỗi của hàm TimKHcotienMin khi chạy nó như thế nào thì mới biết cách sửa chứ @@!
Vấn đề ở đây là mọi người không biết @Hong_Hue đang làm cái gì cả, không có đề bài, không biết @Hong_Hue muốn làm như thế nào để giải bài và cũng không biết @Hong_Hue đang bị lỗi gì cả.
Giống như @Hong_Hue tới gặp bác sĩ bảo là em bị bệnh, nhờ bác sĩ chữa nhưng không nói bị bệnh gì, dấu hiệu ra sao.
Em có đề như sau:
Mình không biết làm câu b, cảm ơn mọi người.
Với đề này thì em cần
tien_nhonhat = 0
, gán sẵn bằng0
vitri_khachhang = 0
, gán sẵn bằng0
tien_nhonhat < Tien
thìtien_nhonhat = Tien
,vitri_khachhang =
vị trí của khách hàng trong dánh sách này.Khi hết vòng lặp ta sẽ có được
vitri_khachhang
có số tiền nhỏ nhất.Em xin bổ sung
Trong trường hợp có nhiều người có cùng tổng tiền bé nhất thì có thể chạy thêm một vòng lặp nữa để quét hết.
như vầy đúng ko a
Trông có vẻ ổn, làm thêm gợi ý của @hoangHEDSPI nữa nếu muốn xịn hơn
giúp e vàong lặp for đó voi ạ
Không, em tạo thêm một vòng for mới để tìm.
e ko hieu cach tim a,hic ,
Trong trường hợp có nhiều người có cùng số tiền nhỏ nhất. Ta có thể dùng một vòng lặp duyệt qua danh sách khách hàng, và kiểm tra nếu khách hàng nào có số tiền bằng với số tiền nhỏ nhất thì ta in ra tên của họ.
Để làm được điều này thì ta cần phải tìm được số tiền nhỏ nhất trước đã. Thế nên ta phải làm một vòng lặp tìm số tiền nhỏ nhất và một vòng lặp tìm ra những khách hàng có số tiền nhỏ nhất.
Sao e cấp phát cho
list
thì nó lại k chạy vòng lặpfor tìm tiền min
vậy