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("\nNhap lai!!!");
}while(x.soluong<1);
float t;
do{
printf("Don gia( ngan VND): "); scanf("%f",&t);
if(t<0)
printf("\nNhap lai!!!");
}while(t<0);
x.dongia=t;
}
void xuatmh(mh x)
{
printf("%s\t%s\t%d\t%.1f ngan VND\n",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:\n ",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!!!\n");
}while(n<1);
nhapds(a,n);
printf("\nDanh sach mat hang--------\n");
xuatds(a,n);
printf("\nCac mat hang so luong hon 10la: \n");
slhon10(a,n);
float s=tonggiatri(a,n);
printf("\nTong gia tri don hang la: %.1f ngan VND",s);
printf("\nCac mat hang co don gia cao nhat la: \n");
dongiamax(a,n);
printf("\nMat hang dau tien co so luong >10:\n");
int b=mhdautien(a,n);
if(b==-1)
printf("\tKhong co mat hang nao co so luong >10!!!");
else
xuatmh(a[b]);
char k[11];
printf("\nTim mat hang co ma: ");
gets(k);
int l=timmh(a,n,k);
if(l==-1)
printf("\tKhong tim thay!!!");
else
xuatmh(a[l]);
printf("\nSap xep mat hang theo don gia----\n");
sapxepdongia(a,n);
printf("\nSap xep mat hang theo ten -------\n");
sapxeptheoten(a,n);
printf("\nThem 1 mat hang vao cuoi danh sach\n");
mh h;
nhapmh(h);
printf("\nKet qua-----\n");
themcuoi(a,n,h);
printf("\nThem mat hang tai vi tri k--------\n");
mh r;
nhapmh(r);
int vt;
printf("\nvi tri: "); scanf("%d",&vt);
thembatki(a,n,r,vt);
printf("\nXoa bat ki--------\n");
int vt2;
printf("\nVitri: "); scanf("%d",&vt2);
xoabatki(a,n,vt2);
printf("\n\n\t\t\t\t\t\tDEATH");
getch();
}
83% thành viên diễn đàn không hỏi bài tập, còn bạn thì sao?