30/09/2018, 21:35
Code không chạy được trên DevC mặc dù chạy được trên Borland C
Mọi người cho em hỏi đoạn code này em đã chạy được thành công trên BORLAND C mà Lên DEV thì lại không chạy được lệnh Mã hàng. Mọi người giúp em
#include <stdio.h>
#include <conio.h>
#include <string.h>
struct mathang
{
char mahang[11];
char tenhang[11];
int soluong;
float dongia;
};
typedef struct mathang mh;
void nhapmh(mh &x)
{
printf("Ma mat hang: "); gets(x.mahang);
printf("Ten mat hang: "); gets(x.tenhang);
do{
printf("So luong: "); scanf("%d",&x.soluong);
if(x.soluong<1)
printf("
Nhap lai!!!");
}while(x.soluong<1);
float t;
do{
printf("Don gia( ngan VND): "); scanf("%f",&t);
if(t<0)
printf("
Nhap lai!!!");
}while(t<0);
x.dongia=t;
}
void xuatmh(mh x)
{
printf("%s %s %d %.1f ngan VND
",x.mahang,x.tenhang,x.soluong,x.dongia);
}
void nhapds(mh a[],int n)
{
for(int i=0;i<n;i++)
{
printf("Nhap mat hang thu %d:
",i+1);
nhapmh(a[i]);
}
}
void xuatds(mh a[],int n)
{
for(int i=0;i<n;i++)
{
printf("%d--",i+1);
xuatmh(a[i]);
}
}
void slhon10(mh a[],int n)
{
int flag=0;
for(int i=0;i<n;i++)
{
if(a[i].soluong>10)
{
xuatmh(a[i]);
flag=1;
}
}
if(flag==0)
printf("Khong co mat hang nao so luong hon 10!!!");
}
float tonggiatri(mh a[],int n)
{
float s=0;
for(int i=0;i<n;i++)
{
s=s+a[i].dongia*a[i].soluong;
}
return s;
}
float max(mh a[],int n)
{
float max=a[0].dongia;
for(int i=1;i<n;i++)
{
if(max<a[i].dongia)
max=a[i].dongia;
}
return max;
}
void dongiamax(mh a[],int n)
{
for(int i=0;i<n;i++)
{
if(a[i].dongia==max(a,n))
xuatmh(a[i]);
}
}
int mhdautien(mh a[],int n)
{
for(int i=0;i<n;i++)
{
if(a[i].soluong>10)
return i;
}
return -1;
}
int timmh(mh a[],int n, char k[11])
{
for(int i=0;i<n;i++)
if(strcmp(a[i].mahang,k)==0)
return i;
return -1;
}
void sapxepdongia(mh a[],int n)
{
mh tam;
for(int i=0;i<n;i++)
for(int j=i+1;j<n;j++)
if(a[i].dongia>a[j].dongia)
{
tam=a[i];
a[i]=a[j];
a[j]=tam;
}
xuatds(a,n);
}
void sapxeptheoten(mh a[],int n)
{
mh tam;
for(int i=0;i<n;i++)
for(int j=i+1;j<n;j++)
{
if(strcmp(a[i].tenhang,a[j].tenhang)>0)
{
tam=a[i];
a[i]=a[j];
a[j]=tam;
}
}
xuatds(a,n);
}
void themcuoi(mh a[],int &n,mh h)
{
a[n]=h;
n++;
xuatds(a,n);
}
void thembatki(mh a[],int &n,mh r,int vt)
{
for(int i=n;i>vt;i--)
a[i]=a[i-1];
a[vt]=r;
n++;
xuatds(a,n);
}
void xoabatki(mh a[],int &n,int vt1)
{
for(int i=vt1;i<n;i++)
a[i]=a[i+1];
n--;
xuatds(a,n);
}
int main()
{
int n;
mh a[100];
do{
printf("Nhap so luong mat hang: "); scanf("%d",&n);
if(n<1)
printf("Nhap lai!!!
");
}while(n<1);
nhapds(a,n);
printf("
Danh sach mat hang--------
");
xuatds(a,n);
printf("
Cac mat hang so luong hon 10la:
");
slhon10(a,n);
float s=tonggiatri(a,n);
printf("
Tong gia tri don hang la: %.1f ngan VND",s);
printf("
Cac mat hang co don gia cao nhat la:
");
dongiamax(a,n);
printf("
Mat hang dau tien co so luong >10:
");
int b=mhdautien(a,n);
if(b==-1)
printf(" Khong co mat hang nao co so luong >10!!!");
else
xuatmh(a[b]);
char k[11];
printf("
Tim mat hang co ma: ");
gets(k);
int l=timmh(a,n,k);
if(l==-1)
printf(" Khong tim thay!!!");
else
xuatmh(a[l]);
printf("
Sap xep mat hang theo don gia----
");
sapxepdongia(a,n);
printf("
Sap xep mat hang theo ten -------
");
sapxeptheoten(a,n);
printf("
Them 1 mat hang vao cuoi danh sach
");
mh h;
nhapmh(h);
printf("
Ket qua-----
");
themcuoi(a,n,h);
printf("
Them mat hang tai vi tri k--------
");
mh r;
nhapmh(r);
int vt;
printf("
vi tri: "); scanf("%d",&vt);
thembatki(a,n,r,vt);
printf("
Xoa bat ki--------
");
int vt2;
printf("
Vitri: "); scanf("%d",&vt2);
xoabatki(a,n,vt2);
printf("
DEATH");
getch();
}
Bài liên quan