:conan: đây là những bài cơ bản đối với mảng 1 chiều
nhập xuất, tính toán, gộp, tách ghép, vvv
[AH]
[/AH]
mình chỉ test với những số cơ bản, tại chưa có thời gian test mấy số bí bí nên có chổ nào sai xót hoặc k hiểu cứ cmt mình sẽ giải thích + fixx lại code
Tks all!
nhập xuất, tính toán, gộp, tách ghép, vvv
[AH]
Mã:
#include<stdio.h>
#include<math.h>
#define MAX 90000
int snt(int n);
void nhapmang(int a[],int n);
void xuatmang(int a[],int n);
void tinhtong(int a[],int n);
void chen(int a[],int &n);
void xoa(int a[], int &n);
void tim(int a[], int n);
void sapxep(int a[], int n);
void goptach(int a[],int b[], int &n);
int main()
{
int a[MAX],b[MAX],n,chon;
do
{
printf("\n 1. nhap mang");
printf("\n 2. xuat mang");
printf("\n 3. tinh tong");
printf("\n 4. chen phan tu vao mang");
printf("\n 5. xoa phan tu cua mang");
printf("\n 6. tim phan tu");
printf("\n 7. sap xep mang");
printf("\n 8. ghep va tach mang\n");
scanf("%d",&chon);
switch(chon)
{
case 1:
printf("\nnhap so phan tu cua mang\n");
scanf("%d",&n);// gia su 0 < n < MAX
nhapmang(a, n); break;
case 2:
xuatmang(a, n); break;
case 3:
tinhtong(a, n); break;
case 4:
chen(a,n); break;
case 5:
xoa(a,n); break;
case 6:
tim(a,n); break;
case 7:
sapxep(a,n); break;
case 8:
goptach(a,b,n); break;
}
if (1 > chon || chon > 9)
printf("nhap sai, moi nhap lai\n");
}while(0<chon<9);
}
int snt(int n)
{
if ( n <= 1)
return 0;
for ( int i = 2 ; i < n ; i ++)
if (n%i==0)
return 0;
return 1;
}
void nhapmang(int a[], int n)
{
for (int i = 0 ; i < n ; i ++)
scanf("%d",&a[i]);
}
void xuatmang(int a[], int n)
{
for (int i = 0 ; i < n ; i ++)
printf("%d ",a[i]);
}
void tinhtong(int a[], int n)
{
int chon1;
int tongchan=0;
int tongle=0;
int tongsnt=0;
printf("\n1. tong so chan");
printf("\n2. tong so le");
printf("\n3. tong so nguyen to");
scanf("%d",&chon1);
switch(chon1)
{
case 1:
for (int i = 0 ; i < n ; i ++)
if ( a[i]%2 ==0 )
tongchan = tongchan + a[i];
printf("tong chan cua mang la %d",tongchan);
break;
case 2:
for (int i = 0 ; i < n ; i ++)
if ( a[i]%2 != 0 )
tongle = tongle + a[i];
printf("tong le cua mang la %d",tongle);
break;
case 3:
for (int i = 0 ; i < n ; i ++)
if ( snt(a[i])== 1)
tongsnt = tongsnt + a[i];
printf("tong snt cua mang la %d",tongsnt);
break;
default:
printf("chon sai! Exit!!!");
}
}
void chen(int a[], int &n)
{
int chon2,sochen;
printf("\n1. chen dau mang ");
printf("\n2. chen cuoi mang ");
printf("\n3. chen giua mang ");
scanf("%d",&chon2);
switch(chon2)
{
case 1:
printf("nhap so can chen ");
scanf("%d",&sochen);
for ( int i = n ; i > 0 ; i-- )
a[i]=a[i-1];
a[0]=sochen;
n++;
break;
case 2:
printf("nhap so can chen ");
scanf("%d",&sochen);
a[n]=sochen;
n++;
break;
case 3:
printf("nhap so can chen ");
scanf("%d",&sochen);
for ( int i = n ; i = n/2 ; i-- )
a[i]=a[i-1];
a[n/2]=sochen;
n++;
break;
default:
printf("chon sai! Exit!!!");
}
}
void xoa(int a[], int &n)
{
int k;
printf("\nnhap vi tri muon xoa ");
scanf("%d",&k);
n--;
for ( int i = k-1; i < n ; i ++)
a[i]=a[i+1];
printf("\n Done! Da xoa!!!");
}
void tim(int a[], int n)
{
int sotim;
int tmp=0;
for(int i = 0 ; i < n ; i ++)
if (sotim == i )
{
tmp++;
printf("\n so can tim o vi tri %d",i+1);
break;
}
if ( tmp == 0)
printf("\n k co so can tim trong mang");
}
void sapxep(int a[],int n)
{
int h,tmp;
printf("\n1. sap xep theo chieu tang dan");
printf("\n2. sap xep theo chieu giam dan");
scanf ("%d",&h);
switch(h)
{
case 1:
for (int i = 0 ; i < n-1 ; i ++)
for ( int j = i+1 ; j < n ; j ++)
if ( a[j] <= a[i] )
{
tmp = a[i];
a[i] = a[j];
a[j] = tmp;
}
break;
case 2:
for (int i = 0 ; i < n-1 ; i ++)
for ( int j = i+1 ; j < n ; j ++)
if ( a[j] >= a[i] )
{
tmp = a[i];
a[i] = a[j];
a[j] = tmp;
}
break;
default:
printf("chon sai! Exit!!!");
}
}
void goptach(int a[], int b[], int &n)
{
int chon3,k,tmp=0;
printf("\n1. Gop mang");
printf("\n2. Tach mang");
scanf("%d",&chon3);
switch(chon3)
{
case 1:
printf("nhap so phan tu cua mang moi muon gop");
scanf("%d",&k);
for (int i = 0 ; i < k ; i ++)
scanf("%d",&b[i]);
for (int i = n ; i < n+k ; i ++)
{
a[i]=b[tmp];
tmp++;
}
n=n+k;
for (int i = 0 ; i < n ; i ++)
printf("%d ",a[i]);
case 2:
printf("nhap so muon tach");
scanf("%d",&n);
for ( int i = n ; i < 9 ; i ++)
{
b[tmp]=a[i];
tmp++;
}
default:
printf("chon sai! Exit!!!");
}
}
mình chỉ test với những số cơ bản, tại chưa có thời gian test mấy số bí bí nên có chổ nào sai xót hoặc k hiểu cứ cmt mình sẽ giải thích + fixx lại code
Tks all!