Untitled
unknown
plain_text
4 years ago
2.3 kB
8
Indexable
#include<stdio.h> typedef struct Hang { long long ISBN; long long soLuong; float gia, giaTri; int so0; }h; int c1(long long k, int *y) { long long h = k; int count = 0; while(h > 0) { h = h / 10; count++; } *y = count; count--; int sum = k%10; k = k/10; int i = 2; int dem = 0; while(dem < count) { sum+= (k%10)*i; k = k/10; i++; dem++; } if(sum%11 == 0) return 1; return 0; } void nhap(h a[], int n) { for(int i = 0; i < n;i++) { long long k,q; float j; scanf("%lld %f %lld", &k, &j, &q); if(c1(k, &a[i].so0) == 1 && j > 0 && q >= 0 ) { a[i].ISBN = k; a[i].gia = j; a[i].soLuong = q; a[i].giaTri = a[i].gia * (float)a[i].soLuong; a[i].so0 = 10 - a[i].so0; } else { printf("\nNhap lai: "); i--; } } } void inTieuDe() { printf("\n\t\t\tBooks in Stock"); printf("\n\t\t\t==============\n"); printf("%-20s %-20s %-20s %-20s", "ISBN", "Price", "Quantity" , "Value"); printf("\n----------------------------------------------------------------------"); } void in(h a[], int n) { float sum = 0; for(int i = 0 ; i < n ; i++) { printf("\n"); for(int j = 0 ; j < a[i].so0 ; j++) { printf("0"); } printf("%-20lld %-20.2f %-20lld %-20.2f", a[i].ISBN , a[i].gia, a[i].soLuong, a[i].giaTri); sum+= a[i].giaTri; } printf("\nTotal value books in stock: %.2f", sum); } void ss(h a[], int n) { for(int i = 0 ; i <n - 1;i++) { for(int j = i+1;j<n;j++) { if(a[i].gia < a[j].gia) { h b = a[i]; a[i] = a[j]; a[j] = b; } } } } int main() { int soMatHang; printf("Nhap so luong mat hang: "); scanf("%d", &soMatHang); h a[100]; printf("\nNhap mat hang ( ISBN - gia - soLuong):\n"); nhap(a,soMatHang); ss(a,soMatHang); inTieuDe(); in(a,soMatHang); return 0; }
Editor is loading...