#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);
}
Code chạy vẫn ra đúng nhưng hiện lỗi "has stopped working"
n chưa được nhập gíá trị.
ơ a,cấp phát động được khai thế này mà
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?
bạn chạy thử đi,đến lúc chạy CT mình có nhập n mà.
nó nhận n này này,
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
mình sửa rồi nhưng nó vẫn báo lỗi đấy
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);
}
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
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)
#include<conio.h>
#include<stdio.h>
#include<iostream>
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);
}
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
Bạn bôi đen code rồi ấn Ctrl + K để format code nhá