01/10/2018, 00:49
Các bác giúp e vs e kb sai ở đâu luôn :(
main()
{
int A[100];
int N;
cout<<"Nhap N ";cin>>N;
for(int i=1;i<=N;i++)
{
cout<<"Nhap A["<<i<<"] = ";
cin>>A[i];
}
cout<<"Day vua nhap la : ";
for(int i=1;i<=N;i++)
{
cout<<A[i]<<" ";
}
cout<<"Sap xep day giam dan ";
int temp;
for(int i=1;i<=N;i++)
{
if (A[i]<A[i+1])
{
temp=A[i];
A[i]=A[i+1];
A[i+1]=temp;
}
}
for(int i=1;i<=N;i++)
cout<<" "<<A[i];
}

Sáng Béo
viết 02:49 ngày 01/10/2018
- Thứ nhất: chỗ này trong vòng lặp có gọi đến A[i+1] mà khi i chạy đến N thì A[i+1] không xác định. có thể là gía trị ngẫu nhiên trong bộ nhớ.
- Thứ hai: Sau khi chạy xong vòng lặp này thì bạn mới chỉ đưa được số nhỏ nhất về cuối dãy. Cần có 2 vòng lặp để đưa tất cả các phần tử về đúng vị trí tăng dần.
Bài liên quan