Untitled
unknown
plain_text
4 years ago
2.3 kB
11
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...