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!!

viết 22:04 ngày 30/09/2018

trong hàm push sửa dòng s.data[s.top++]=x thành s.data[++s.top]=x

viết 22:03 ngày 30/09/2018

Cái hàm Nhap bạn xem lại, x có giá trị gì mà push(s,x)?

Dung Nguyen viết 22:18 ngày 30/09/2018

thanks bạn mình sửa đc oy

Bài liên quan
0