30/09/2018, 20:02
chạy chương trình phần NGĂN XẾP bị lỗi
#include <stdio.h>
#include <conio.h>
#include <string.h>
#define MAX 100
struct dacntt
{
char tenduan[30] ;
float tien;
};
struct stack
{
int top;
dacntt data[MAX];
};
void khoitao(stack &s)
{
s.top=-1;
}
int ktrong(stack s)
{
if(s.top==-1) return 1;
else return 0;
}
int ktday(stack s)
{
if(s.top==MAX-1) return 1;
else return 0;
}
void push(stack &s,dacntt x)
{
if(ktday(s)) printf("Ngan xep day");
else
{
s.data[s.top++]=x;
}
}
void Nhap(stack &s)
{
int n;
dacntt x;
printf("
Nhap so phan tu:");
scanf("%d",&n);
for (int i=0;i<n;i++)
{
printf("
Nhap ten du an:");fflush(stdin);gets(s.data[i].tenduan);
printf("
Nhap so tien:"); scanf("%f",&s.data[i].tien);
push(s,x);
}
}
void xuat(stack s)
{
for (int i=0;i<=s.top;i++)
printf("%s %f",s.data[i].tenduan,s.data[i].tien);
}
main()
{
struct stack s;
khoitao(s);
Nhap(s);
xuat(s);
getch();
}
đây là CODE của em khi chạy chương trình nhập n =2
rồi nhập phần tử 1
đên khi nhập xong phần tử thứ 2 thì báo lỗi “has stopped working” ai sửa dùm mình với. Xin chân thành cảm ơn!!
Bài liên quan
trong hàm push sửa dòng s.data[s.top++]=x thành s.data[++s.top]=x
Cái hàm Nhap bạn xem lại, x có giá trị gì mà push(s,x)?
thanks bạn mình sửa đc oy