01/10/2018, 00:37
Sữa lỗi giúp e với , chèn phần tử bị lỗi
// viet ct nhap vao mang gom n so nguyen , xuât mang vua nhap ra man hinh , nhap vao phan tu can xoa
#include <stdio.h>
int main ()
{
int arr [100];
int n,i,a, dem =0;
printf ("Nhap so phan tu mang:");
scanf ("%d",&n);
for ( i= 0; i <n; i++)
{
printf ("Nhap phan tu thu %d :",i);
scanf ("%d",&arr[i]);
}
printf ("
Mang vua nhap la :
");
for (i=0; i <n ; i++)
{
printf ("%5d", arr[i]);
}
//xoa phan tu
int phantuxoa;
int j;
printf ("
Nhap phan tu can xoa :");
scanf ("%d",&phantuxoa);
for ( i=0 ; i <n ; i++ )
{
while (arr[i]==phantuxoa)
{
if (i==n-1)
{
n--;
break ;
}
else
{
for (int j=i;j<n-1;j++)
arr[j]=arr[j+1];
n--;
}
}
}
printf ("
Mang sau khi xoa phan tu can xoa la:
");
for (i=0;i<n;i++)
{
printf ("%5d",arr[i]);
}
printf ("
");
//nhap gia tri vao phan tu can chen
int vitri;
int giatri;
printf ("Nhap vao phan tu can chen:
");
scanf ("%d",&giatri);
printf ("nhap vao vi tri can chen:
");
scanf ("%d",&vitri);
n++;
for (i=0;i<n;i++)
{
if (i==vitri)
{
for (j<n+1;j=i;j--)
arr[i]=arr[j-1];
arr[i] = giatri;
break;
}
}
printf ("
Mang sau khi chen phan tu la :
" );
for (i=0;i<n+1; i++)
printf ("%5d",arr[i]);
}
Bài liên quan
Mình thấy dòng 60:
for (j<n+1;j=i;j--)
lạ quá :D,j < n + 1
là sao bạn?thế là mình sai chỗ đấy hả bạn
chèn mình nghĩ dùng code như sau là ok
cảm ơn a …code của a e còn khó hiểu 1 tí , vì e chỉ mới học C cơ bản a
ý mình nói là phần vòng lặp for thôi
Cái câu for này tào lao rồi
Cấu trúc một vòng for:
init: là giá trị khởi đầu, bước này được thực hiện trước.
condition: điều kiện để vòng lặp xảy ra.
increment/decrement: bước này cập nhật giá trị của biến.
Chỗ
j<n+1
là điều kiện.Chúc bạn học tốt!
e sửa đc lỗi r a , e cảm ơn a hihe
e cảm ơn a, e đã sửa đc
à vâng , e sửa đc r a