30/09/2018, 20:51
hỏi về xếp mảng tăng dần trong C
tình hình là em xếp đúng rồi nhưng không hiểu sau nó vẫn lấy giá trị 0 của phần tử cuối dù em đã trừ cái phần tử đó ra rồi , mong mọi người giúp đỡ
int main(){
int a[20],i=0,n,e,j;
do{
printf("nhap vao gia tri %d:",i+1);
scanf("%d",&a[i]);
}while(a[i++]!=0);
n=i--;
for(i=n-1;i>=0;i--){
for(j=0;j<i;j++){
if(a[j]>=a[j+1]){
e=a[j];
a[j]=a[j+1];
a[j+1]=e;
}
}
}
printf("day sau sap xep :");
for(j=0;j<n;j++){
printf("%d",a[j]);
}
return 0;
}
Bài liên quan
n=i--
nên viết thànhn=i
vì i thay đổi hay không cũng không ảnh hươngt vòng for saufor(i=n-2...
bạn cho
n = i--
thì nó chưa trừ phần tử đó ra đâu…n = i-1
hoặcn = --i
thì được.với cả ở đây bạn so sánh a[j] với a[j+1] nên vòng for ngoài phải cho
i = n-2
thì a[j+1] mới ko lấy phải phần tử a[n] là phần tử 0 kia.