Sắp xếp mặt hàng
Hãy sắp xếp danh sách các mặt hàng đã có trong file theo lợi nhuận giảm dần. Mỗi mặt hàng gồm các thông tin:
• Mã mặt hàng: là một số nguyên, tự động tăng. Tính từ 1.
• Tên mặt hàng, nhóm hàng: là các xâu ký tự
• Giá mua, giá bán: là các số thực (không quá 9 chữ số) Dữ liệu vào:
Dòng đầu chứa số mặt hàng. Mỗi mặt hàng viết trên 4 dòng:
• Dòng 1: Tên mặt hàng • Dòng 2: Nhóm hàng • Dòng 3: Giá mua.
• Dòng 4: Giá bán
Kết quả:
In ra danh sách mặt hàng đã sắp xếp theo lợi nhuận giảm dần (lợi nhuận tính bằng giá bán trừ đi giá mua). Nếu 2 mặt hàng lợi nhuận bằng nhau thì mặt hàng nào xuất hiện trước trong file sẽ viết trước. Mỗi mặt hàng viết trên một dòng gồm: mã, tên, nhóm hàng và lợi nhuận. Các thông tin cách nhau đúng 1 khoảng trống.
INPUT:
3
May tinh SONY VAIO
Dien tu
16400
17699
Tu lanh Side by
Side
Dien lanh
18300
25999
Banh Chocopie
Tieu dung
27.5
37
OUTPUT:
2 Tu lanh Side by Side Dien lanh 7699
1 May tinh SONY VAIO Dien tu 1299
3 Banh Chocopie Tieu dung 10.5
CODE:
#include<stdio.h>
#include<string.h>
FILE *f1 = fopen("m.inp","r");
FILE *f2 = fopen("m.out","w");
struct sv
{
int ma;
char ten[100],nhom[100];
float mua,ban;
};
sv ds[100];
main()
{
int n,i,j;
char t[10000];
fscanf(f1,"%d
",&n);
for(i=0;i<n;i++)
{
ds[i].ma = i+1;
fgets(ds[i].ten,1000,f1);
if(ds[i].ten[strlen(ds[i].ten)-1]=='
') ds[i].ten[strlen(ds[i].ten)-1]=' ';
fgets(ds[i].nhom,1000,f1);
if(ds[i].nhom[strlen(ds[i].nhom)-1]=='
') ds[i].nhom[strlen(ds[i].nhom)-1]=' ';
fscanf(f1,"%f%f",&ds[i].mua,&ds[i].ban);
}
for(i=0;i<n-1;i++)
{
for(j=i+1;j<n;j++)
{
if(ds[i].ban - ds[i].mua < ds[j].ban - ds[j].mua)
{
sv u=ds[i];
ds[i]=ds[j];
ds[j]=u;
}
}
}
for(i=0;i<n;i++)
fprintf(f2,"%d %10s %10s %3.1f
",ds[i].ma,ds[i].ten,ds[i].nhom,ds[i].ban - ds[i].mua);
}
Sao code của e lại ra thế này:
3 Side Dien lanh 7699.0
1 May tinh SONY VAIO Dien tu 1299.0
2 Tu lanh Side by 0.0
Ai giúp vs ạ. E đang cần gấp lắm.
Cái này là do bạn chưa định dạng đầy đủ thôi.
Xem ở link sau nhé: http://www.cplusplus.com/reference/cstdio/printf/
Bạn cho dấu “-” vào trước để nó căn trái xem thế nào!
For a brighter future: http://chingovan.blogspot.com/
Bạn học trưởng nào mà cho đề liên miên ác v -,-