01/10/2018, 12:25
Chuyển index khi đếm mảng bắt đầu từ 1 thành index khi đếm mảng bắt đầu từ 0
Đề : Chèn x vào vị trí thứ k trong mảng
Cho em hỏi ví dụ em tạo 1 mảng, gồm 4 giá trị có số 5 6 8 9. Em thêm vào số 7 tại vị trí số 8 để trở thành 5 6 7 8 9, thì tại vị trí đó trong mảng là vị trí thứ 2, nhưng thường ở ngoài đời mình coi vị trí đó là thứ 3 tại xem bắt đầu bằng 1. Anh chị có cách nào để cho người dùng nhập vào k là 3 mà không bị sai không ạ .
#include <stdio.h>
#define MAXN 100
int menu()
{
int l;
printf("**************MENU*************
");
printf("1. Tao day so
");
printf("2. Chen phan tu vao vi tri k
");
printf("Nhap lua chon:");
scanf("%d",&l);
return l;
}
void taodayso(int a[],int &n)
{
int i;
do
{
printf("Nhap bao nhieu so nguyen:");
scanf("%d",&n);
}
while(n<0 || n>MAXN);
for(i=0;i<n;i++)
{
printf("Nhap so thu %d la:",i+1);
scanf("%d",&a[i]);
}
}
void chenmotvitri(int a[],int &n,int x,int k)
{
int i;
for(i=n;i>k;i--)
{
a[i]=a[i-1];
}
a[k]=x;
n++;
}
int main()
{
int i,x,n,k,a[MAXN],l;
do
{
l=menu();
switch(l)
{
case 1: taodayso(a,n);
break;
case 2:
printf("Nhap them gia tri x:");
scanf("%d",&x);
printf("Nhap vi tri muon them:");
scanf("%d",&k);
chenmotvitri(a,n,x,k);
for(i=0;i<n;i++)
printf("%d
",a[i]);
break;
default: printf("Bye/n");
}
}
while(l>0 && l<3);
return 0;
}
Bài liên quan
k--