30/09/2018, 18:31

MN cho e hỏi...code này e chạy vẫn ra đúng nhưng nó hiện lỗi " .... has stopped working " là sao ạ

#include<conio.h>
#include<stdio.h>
#include<iostream>
using namespace std;
void nhap_Day(int *p,int n)
{
	int i;
	cout<<"nhap vao day d: "<<endl;
	for(i=0;i<n;i++)
		{
			cout<<"phan tu "<<i<<" = ";
			cin>>*(p+i);
		}
}
void hien_Day(int *p,int n)
{
	int i;
	cout<<"day vua nhap la: "<<endl;
	for(i=0;i<n;i++)
	cout<<*(p+i)<<" ";
}
void chen_Kitu(int *p,int n)
{
	int x,k,i;
	bool stop;
	cout<<endl<<"nhap vao x va k: ";
	cin>>x>>k;
	if(k>=1&&k<=n)	stop=true;
	else 			stop=false;
	if(stop==true)
		{
			++n;					//tang phan them phan tu cua day len 1
			for(i=n+1;i>=k;i--)
				{
					*(p+i)=*(p+i-1);
				}
			*(p+k)=x;
		hien_Day(p, n);	
		}
	else cout<<"khong hop le. ";
}
main()
{
	int *p,n;
	p=new int[n];
	do{
		cout<<"nhap vao 5<=n<=30: ";
		cin>>n;
	}while(n<5||n>30);
	nhap_Day(p,n);
	hien_Day(p, n);
	chen_Kitu(p,n);
}
... viết 20:35 ngày 30/09/2018

int *p,n;
p=new int[n];

n chưa được nhập gíá trị.

Bi-Clever viết 20:33 ngày 30/09/2018

ơ a,cấp phát động được khai thế này mà

... viết 20:41 ngày 30/09/2018

Thế thì mình hỏi bạn là bạn đang muốn cấp phát cho p bao nhiêu phần tử?
Bạn cấp phát xong rồi bạn mới nhập n thì máy làm sao nó biết?

Bi-Clever viết 20:32 ngày 30/09/2018

bạn chạy thử đi,đến lúc chạy CT mình có nhập n mà.

Bi-Clever viết 20:41 ngày 30/09/2018

do{
cout<<"nhap vao 5<=n<=30: ";
cin>>n;
}while(n<5||n>30);

nó nhận n này này,

Pham Van Hai viết 20:42 ngày 30/09/2018

Bạn phải nhập giá trị cho biến n trước câu lệnh này
p=new int[n];
chứ không phải cấp phát động rồi mới nhập n

Bi-Clever viết 20:45 ngày 30/09/2018

ạn phải nhập giá trị

mình sửa rồi nhưng nó vẫn báo lỗi đấy

Pham Van Hai viết 20:46 ngày 30/09/2018
main()
{
	int *p,n;
	do{
		cout<<"nhap vao 5<=n<=30: ";
		cin>>n;
	}while(n<5||n>30);
	p=new int[n];
	nhap_Day(p,n);
	hien_Day(p, n);
	chen_Kitu(p,n);
}

Bi-Clever viết 20:42 ngày 30/09/2018

bạn chạy có lỗi không,mình vẫn ra kết quả đúng nhưng xong lại thông báo "…has stopped working

Pham Van Hai viết 20:35 ngày 30/09/2018

chương trình chạy bình thường, không lỗi gì cả:

ps: trình biên dịch g++ (gcc compiler)

Bi-Clever viết 20:38 ngày 30/09/2018

#include<conio.h>
#include<stdio.h>
#include
using namespace std;
void nhap_Day(int p,int n)
{
int i;
do{
cout<<"nhap vao 1<=n<=20: “;
cin>>n;
}while(n<1||n>20);
for(i=0;i<n;i++)
{
cout<<”
(p+"<<i<<")= “;
cin>>*(p+i);
}
}
void hien_Day(int p,int n)
{
int i;
for(i=0;i<n;i++)
{
cout<<
(p+i)<<” ";
}
}
main()
{
int n,*p;
p=new int[n];
nhap_Day(p,n);
hien_Day(p,n);
}

Bi-Clever viết 20:35 ngày 30/09/2018

bài này là mình truyền tham chiếu cho n nên hàm hien_Day nó không in ra ,bạn chỉ mình cách truyền tham trị được không

Thành Phạm viết 20:45 ngày 30/09/2018

Bạn bôi đen code rồi ấn Ctrl + K để format code nhá

Bài liên quan
0