Tải bản đầy đủ (.doc) (27 trang)

lời giải 49 bài môn kĩ thuật lập trình nhúng Đại học Công Nghiệp Hà Nội

Bạn đang xem bản rút gọn của tài liệu. Xem và tải ngay bản đầy đủ của tài liệu tại đây (50.62 KB, 27 trang )

BAI 1 TÌM CHẴN MIN
#include<stdio.h>
#include<math.h>
//nhap mang mot chieu
void nhapmang(int a[],int &n)
{
printf("\n so phan tu cua mang la:");
scanf("%d",&n);
for(int i=0;i{
printf("\n phan thu thu [%d]: ",i);
scanf("%d",&a[i]);
}
}
// xuat mang mot chieu
void xuatmang (int a[], int n)
{
int i;
for (int i=0;iprintf("%5d",a[i]);
printf("\n\n");
}
//bai 1 tim so chan nho nhat trong mang
int minchan(int a[], int n)
{
int i,min,dem=0;
for(i=0;iif(a[i]%2==0)
{
dem++;
min=a[i];


}
if(dem==0)
printf("\n khong co so chan !\n\n");
else
{
for(i=0;iif(a[i]%2==0&&a[i]min=a[i];
printf("\n phan tu chan nho nhat trong mang: %2d \n\n",min);
}
return min;
}


int main()
{
int i,n, a[50];
nhapmang(a,n);
printf("\n\n mang vua nhap la:");
xuatmang(a,n);
minchan(a,n);
}

BÀI 2 TÌM NGUYÊN TỐ MAX
#include<stdio.h>
#include<conio.h>
void nhapmang(int a[],int &n)
{
printf("\n so phan tu cua mang: ");
scanf("%d",&n);

for(int i=0;i{
printf("\n phan tu thu[%d]:",i);
scanf("%d",&a[i]);
}
}
void xuatmang (int a[], int n)
{
int i;
for(i=0;iprintf("%5d",a[i]);
printf("\n\n");
}
//kiem tra phan tu co phai nguyen to khong
int ktnt(int n)
{
int i, dem=0;
for(i=1;i<=n;i++)
if(n%i==0)
dem++;
if(dem==2)


return 1;
return 0;
}
//tim phan tu nguyen to lon nhat trong mang
void maxnt(int a[], int n)
{
int i, max, dem=0;

for(i=0;iif(ktnt(a[i])==1)
{
dem++;
max=a[i];
}
if (dem==0) printf("\n\n phan tu khong co so nguyen to!");
else
{
for(i=0;iif(ktnt(a[i])==1&&a[i]>max)
max=a[i];
printf("\n phan tu nguyen to lon nhat trong mang: %5d \n\n",max);
}
}

int main()
{
int i,n,a[50];
nhapmang(a,n);
printf("\n\n mang vua nhap la:");
xuatmang(a,n);
maxnt(a,n);
getch();
}
BAI 3 TÌM CHÍNH PHƯƠNG MAX
#include<stdio.h>


#include<math.h>

void nhapmang(int a[], int&n)
{
printf("\n nhap so phan tu cua mang: ");
scanf("%d",&n);
for( int i=0;i{
printf("\n phan tu thu[%d]: ",i);
scanf("%d",&a[i]);
}
}
void xuatmang(int a[], int n)
{
int i;
for(i=0;iprintf("%5d",a[i]);
printf("\n\n");
}
//kiem tra phan tu co phai chinh phuong khong
int ktcp(int n)
{
int i;
for(i=1;i<=n;i++)
if(i*i==n)
return 1;
return 0;
}
//tim phan tu chinh phuong chan lon nhat
int maxcpc(int a[], int n)
{
int i, max, dem=0;

for(i=0;iif(ktcp(a[i])==1&&a[i]%2==0)
{
dem++;
max=a[i];
}
if(dem==0) printf("\n mang khong co phan tu chinh phuong
chan!\n\n");
else
{
for(i=0;iif(ktcp(a[i])==1&&a[i]>max&&a[i]%2==0)
max==a[i];


printf("\n phan tu chinh phuong can lon nhat trong
mang: %5d\n\n",max);
}
return max;
}

int main()
{
int i,n,a[50];
nhapmang(a,n);
printf("\n\n mang vua nhap la:");
xuatmang(a,n);
maxcpc(a,n);
}
BÀI 4 CHÍNH PHƯƠNG CHẴN MAX

#include<stdio.h>
#include<conio.h>
void nhapmang (int a[], int &n)
{
printf("\n nhap so luong phan tu: ");
scanf ("%d",&n);
for(int i=0;i{
printf("\n phan tu thu [%d]: ",i);
scanf("%d",&a[i]);
}
}
void xuatmang(int a[], int n)
{
int i;
for(i=0;iprintf("%5d",a[i]);


printf("\n\n");
}
//kiem tra phan tu co phai chinh phuong khong
int ktcp(int n)
{
int i;
for (i=1;i<=n;i++)
if (i*i==n)
return 1;
return 0;
}

//tim chinh phuong chan max
int cpchanmax (int a[], int n)
{
int i,max, dem=0;
for(i=0;iif(ktcp(a[i])==1&&(a[i])%2==0)
{
dem++;
max=a[i];
}
if(dem==0)
printf("\n mang khong co chinh phuong chan! ");
else
{
for(i=0;iif(ktcp(a[i])==1&&(a[i])%2==0&&a[i]>max)
max=a[i];
printf("\n phan tu chinh phuong chan lon nhat trong mang la
%d:",max);
}
return max;
}

main()


{
int i,n,a[50];
nhapmang(a,n);
printf("\n\n mang vua nhap: ");

xuatmang(a,n);
cpchanmax(a,n);
getch();
}
BAI 15+20 ĐẾM NGUYÊN TỐ, TRUNG BÌNH CỘNG NGUYÊN TỐ
#include<stdio.h>
#include<conio.h>
void nhapmang(int a[], int &n)
{
printf("\n nhap so luong phan tu: ");
scanf("%d",&n);
for(int i=0;i{
printf("\n phan tu thu [%d]: ",i);
scanf("%d",&a[i]);
}
}
void xuatmang (int a[], int n)
{
int i;
for(i=0;iprintf("%5d",a[i]);
printf("\n\n");
}
//kiem tra phan tu co phai nguyen to khong
int ktnt(int n)
{
int i,dem=0;
for(i=1;i<=n;i++)
if(n%i==0)

dem++;
if(dem==2)
return 1;
return 0;
}
//dem nguyen to
void demnt(int a[], int n)
{


int i, dem=0;
for(i=0;iif(ktnt(a[i])==1)
dem++;
if(dem==0)
printf("\n mang khong111111 co phan tu nguyen to! ");
else
printf("\n so phan tu nguyen to trong mang la: %5d \n\n",dem);
}
//trung binhh cong so nguyen to trong mang
float tbcnt(int a[], int n)
{
int i,tong=0, spt=0;
for(i=0;iif(ktnt(a[i])==1)
{
spt++;
tong+=a[i];
}
if(spt==0)

return 0;
return 1.0*tong/spt;
}

main()
{
int i,n,a[50];
nhapmang(a,n);
printf("\n\n mang vua nhap la: ");
xuatmang(a,n);
demnt(a,n);
if(tbcnt==0)
printf("\n\n mang khong co so nguyen to!");
else
printf("\n\n trung binh cong cac so nguyen to trong mang la:
%5.2f",tbcnt(a,n));
getch();
}


BÀI 23 SẮP XẾP TĂNG ÂM, GIẢM DƯƠNG
#include<stdio.h>
#include<math.h>
void nhapmang(int a[], int &n)
{
printf("\n nhap so luong phan tu: ");
scanf("%d",&n);
for(int i=0;i{
printf("\n phan tu thu [%d]: ",i);

scanf("%d",&a[i]);
}
}
void xuatmang(int a[], int n)
{
int i;
for(i=0;iprintf("%5d",a[i]);
printf("\n\n");
}
// hoang vi 2 so
int hoanvi(int &x, int &y)
{
int z;
z=x; x=y; y=z;
}
/*/kiem tra mang co so duong khong
int mduong(int a[], int n)
{
for(int i=0;iif(a[i]==0&&a[i]>0)
return 1;
return 0;
}*/
//sap xep mang theo thu tu tang dan so am va giam dan so duong
void sxduong(int a[], int &n)
{
int i,j;
//sap xep phan tu duong ve dau mang; phan tu am ve cuoi mang
for (i=0;i

for(j=i+1;jif(a[i]<0&&a[j]>0)
hoanvi(a[i],a[j]);


//sap xep duong tang dan
for (i=0;ifor(j=i+1;jif(a[i]>0&&a[j]>0&&a[i]>a[j])
hoanvi(a[i],a[j]);
//sap xep am giam dan
for (i=0;ifor(j=i+1;jif(a[i]<0&&a[j]<0&&a[i]hoanvi(a[i],a[j]);
}

int main()
{
int i,n,a[50];
nhapmang(a,n);
printf("\n\n mang vua nhap la: ");
xuatmang(a,n);
printf("\n\n mang sap xep tang dan so duong o dau mang va giam dan am ve
cuoi mang la: ");
sxduong(a,n);
xuatmang(a,n);
}

BÀI 33 SẮP XẾP CHÍNH PHƯƠNG

#include<stdio.h>
#include<conio.h>
void nhapmang(int a[], int &n)
{
printf("\n nhap so phan tu cua mang: ");
scanf("%d",&n);
for(int i=0;i{
printf("\n phan tu thu [%d]: ",i);
scanf("%d",&a[i]);
}


}
void xuatmang(int a[], int n)
{
for(int i=0;iprintf("%5d", a[i]);
printf("\n\n");
}
int hoanvi(int &x, int &y)
{
int z;
z=x;x=y;y=z;
}
//kiem tra phan tu co phai chinh phuong khong
int ktcp(int n)
{
for(int i=1;i<=n;i++)
if(i*i==n)

return 1;
return 0;
}
//sap xep tang dan chinh phuong giam dan khong chinh phuong
void sxcp(int a[], int &n)
{
int i,j;
//sx chinh phuong ve dau mang, khong chinh phuong ve cuoi mang
for(i=0;ifor(j=i+1;jif(ktcp(a[i])==0&&ktcp(a[j])==1)
hoanvi(a[i],a[j]);
// sx chinh phuong tang dan
for(i=0;ifor(j=i+1;jif(ktcp(a[i])==1&&ktcp(a[j])==1&&a[i]>a[j])
hoanvi(a[i],a[j]);
//sx khong chinh phuong
for(i=0;ifor(j=i+1;jif(ktcp(a[i])==0&&ktcp(a[j])==0&&a[i]hoanvi(a[i],a[j]);
}


main()
{
int i,n,a[50];
nhapmang(a,n);
printf("\n\n mang vua nhap la: ");

xuatmang(a,n);
printf("\n\n mang sx cp tang dan dau mang va khong cp giam dan cuoi mang
la: ");
sxcp(a,n);
xuatmang(a,n);
getch();
}
BAI 34 CHÈN NGUYÊN TỐ VÀO VỊ TRÍ K
#include<stdio.h>
#include<conio.h>
void nhapmang(int a[], int &n)
{
printf("\n nhap so luong phan tu: ");
scanf("%d",&n);
for(int i=0;i{
printf("\n phan tu thu[%d]: ",i);
scanf("%d",&a[i]);
}
}
void xuatmang(int a[], int n)
{
for(int i=0;iprintf("%5d",a[i]);
printf("\n\n");
}
int ktnt(int n)
{
int i,dem=0;
for(i=1;i<=n;i++)

if(n%i==0)
dem++;
if(dem==2)
return 1;
return 0;
}


int timntdau(int a[], int n)
{
int i,dem=0,nt;
for(i=0;iif(ktnt(a[i])==1)
{
dem++;
nt=a[i];
break;
}
if(dem==0) return 0;
else
return nt;
}
void chenntdau(int a[], int &n, int k)
{
int i, x=timntdau(a,n);
for(i=n;i>k;i--)
a[i]=a[i-1];
a[k]=x;
n++;
}

main()
{
int a[50], n, k;
nhapmang(a,n);
printf("\n\n mang vua nhap la:");
xuatmang(a,n);
printf("\n nhap vi tri k can chen: ");
scanf("%d",&k);
if(timntdau(a,n)==0) printf("\n mang khong co nguyen to! ");
else
printf("\n\n vi tri nguyen to dau tien la: ",timntdau(a,n));
printf("\n\n mang sau khi chen so nguyen to dau %d len vi tri k= %d la:
",timntdau(a,n),k);
chenntdau(a,n,k);
xuatmang(a,n);
getch();
}


BÀI 35 CHÈN NGUYÊN TỐ CUỐI VÀO VỊ TRÍ ĐẦU
#include<stdio.h>
#include<conio.h>
void nhapmang(int a[], int &n)
{
printf("\n nhap so luong phan tu: ");
scanf("%d",&n);
for(int i=0;i{
printf("\n phan tu thu[%d]: ",i);
scanf("%d",&a[i]);

}
}
void xuatmang(int a[], int n)
{
for(int i=0;iprintf("%5d",a[i]);
printf("\n\n");
}
int ktnt(int n)
{
int i,dem=0;
for(i=1;i<=n;i++)
if(n%i==0)
dem++;
if(dem==2)
return 1;
return 0;
}
int timntcuoi(int a[], int n)
{
int i,dem=0, nt;
for(i=n-1;i>=0;i--)
if(ktnt(a[i])==1)
{
dem++;
nt=a[i];
break;
}
if(dem==0) return 0;
else

return nt;


}
int vitrimin(int a[], int n)
{
int i,min,vtmin;
for(i=0;iif(a[i]==0&&a[i]{
min=a[i];
}
for(i=0;iif(min=a[i])
{
vtmin=i;
break;
}
return vtmin;
}
void chenntvaovtmin(int a[], int &n)
{
int i,k=vitrimin(a,n),x=timntcuoi(a,n);
for(i=n;i>k;i--)
a[i]=a[i-1];
a[k]=x;
n++;
}
main()
{

int a[50],n;
nhapmang(a,n);
printf("\n\n mang vua nhap la:");
xuatmang(a,n);
if(timntcuoi(a,n)==0) printf("\n mang khong co nguyen to!");
else
printf("\n vi tri nguyen to cuoi la: %d",timntcuoi(a,n));
printf("\n vi tri so nho nhat la: %d ",vitrimin(a,n));
printf("\n mang sau khi chen nguyen to cuoi %d vao vi tri nho nhat %d la:
",timntcuoi(a,n),vitrimin(a,n));
chenntvaovtmin(a,n);
xuatmang(a,n);
getch();
}


BÀI 37 CHÈN MAX NT VÀO VỊ TRÍ K
#include<stdio.h>
#include<conio.h>
void nhapmang(int a[], int &n)
{
printf("\n nhap so luong phan tu: ");
scanf("%d",&n);
for(int i=0;i{
printf("\n phan tu thu [%d]: ",i);
scanf("%d",&a[i]);
}
}
void xuatmang (int a[], int n)

{
int i;
for(i=0;iprintf("%5d",a[i]);
printf("\n\n");
}
//kiem tra phan tu co phai nguyen to khong
int ktnt(int n)
{
int i,dem=0;
for(i=1;i<=n;i++)
if(n%i==0)
dem++;
if(dem==2)
return 1;
return 0;
}
int ntmax(int a[], int n)
{
int i,max,dem=0;
for(i=0;iif(ktnt(a[i])==1)
{
max=a[i];
dem++;
}
for(i=0;iif(ktnt(a[i])==1&&a[i]>max)



{
max=a[i];
}
return max;
}
void chenntmax (int a[], int &n, int &k)
{
int i,x=ntmax(a,n);
for(i=n;i>k;i--)
a[i]=a[i-1];
a[k]=x;
n++;
}
main()
{
int a[50], n,k;
nhapmang(a,n);
printf("\n mang vua nhap la: ");
xuatmang(a,n);
if(ntmax(a,n)==0) printf("\n mang khoong co nguyen to! ");
else
printf("\n\n nhap vi tri k: ");
scanf("%d",&k);
printf("\n phan tu nguyen to max la: %d",ntmax(a,n));
printf("\n mang sau khi chen nguyen to max = %d vao vi tri k=%d la:
",ntmax(a,n),k);
chenntmax(a,n,k);
xuatmang(a,n);
getch();
}



BÀI 40 CHÈN MIN CHẴN VÀO VỊ TRÍ ĐẦU
#include<stdio.h>
#include<conio.h>
//nhap mang mot chieu
void nhapmang(int a[],int &n)
{
printf("\n so phan tu cua mang la:");
scanf("%d",&n);
for(int i=0;i{
printf("\n phan thu thu [%d]: ",i);
scanf("%d",&a[i]);
}
}
// xuat mang mot chieu
void xuatmang (int a[], int n)
{
int i;
for (int i=0;iprintf("%5d",a[i]);
printf("\n\n");
}
// chen phan tu chan min len vi tri dau tien
void chenminchanlendau(int a[], int &n)
{
int i,min=-1,dem=0;
for(i=0;iif(a[i]%2==0)

{
dem++;
min=a[i];
}
if(dem==0)
printf("\n khong co so chan !\n\n");
else
{
for(i=0;iif(a[i]%2==0&&a[i]min=a[i];
printf("\n phan tu chan nho nhat trong mang: %2d \n\n",min);


}
if(min!=-1)
{
for(int j=n;j>=0;j--)
a[j]=a[j-1];
a[0]=min;
n++;
}
}

main()
{
int n, a[50];
nhapmang(a,n);
printf("\n\n mang vua nhap la:");
xuatmang(a,n);

chenminchanlendau(a,n);
printf("\n\n mang sau khi chen phan tu chan nho nhat len dau la: ");
xuatmang(a,n);
getch();
}

BÀI 41 CHÈN CHÍNH PHƯƠNG MIN VÀO NGUYÊN TỐ CUỐI
#include<stdio.h>
#include<math.h>
//nhap mang mot chieu
void nhapmang(int a[],int &n)
{
printf("\n so phan tu cua mang la:");
scanf("%d",&n);
for(int i=0;i{
printf("\n phan thu thu [%d]: ",i);


scanf("%d",&a[i]);
}
}
// xuat mang mot chieu
void xuatmang (int a[], int n)
{
int i;
for (i=0;iprintf("%5d",a[i]);
printf("\n\n");
}

int ktcp(int n)
{
for(int i=1;i<=n;i++)
if(i*i==n)
return 1;
return 0;
}
int ktmcp (int a[], int n)
{
for(int j=0;jif(ktcp(a[j])==1)
return 1;
return 0;
}
int cpmin(int a[],int n)
{
int i,min;
for(i=0;iif(ktcp(a[i])==1)
min=a[i];
if(ktcp(a[i])==1&&a[i]min=a[i];
return min;
}
int ktnt(int n)
{
int i,dem=0;
for(i=1;i<=n;i++)
if(n%i==0)
dem++;

if(dem==2)
return 1;
return 0;


}
int ktmnt(int a[], int n)
{
for(int j=0;jif(ktnt(a[j])==1)
return 1;
return 0;
}
int vtntcuoi(int a[], int n)
{
for(int vt=n;vt>=0;vt--)
if(ktnt(a[vt])==1)
return vt;
return -1;
}
void chencp(int a[], int &n)
{
int vt=vtntcuoi(a,n), x=cpmin(a,n);
for(int k=n;k>vtntcuoi(a,n);k--)
a[k]=a[k-1];
a[vt]=x;
n++;
}

int main()

{
int n,a[50];
nhapmang(a,n);
printf("\n\n mang vua nhap la:");
xuatmang(a,n);
if(vtntcuoi(a,n)==-1||ktmcp(a,n)==0)
printf("\n mang khong co chinh phuong hoac nguyen to!");
else
{
printf("\n phan tu chinh phuong nho nhat la: %d",cpmin(a,n));
printf("\n vi tri nguyen to cuoi cung la %d:",vtntcuoi(a,n));
chencp(a,n);
printf("\n mang sau khi chen cpmin=%d vao vtntcuoi = [%d] la:
",cpmin(a,n),vtntcuoi(a,n));
xuatmang(a,n);


}
}

BÀI 42 CHÈN X VÀO VỊ TRÍ K
#include<stdio.h>
#include<conio.h>
void nhapmang(int a[], int &n)
{
printf("\n nhap so luong phan tu: ");
scanf("%d",&n);
for(int i=0;i{
printf("\n phan tu thu [%d]: ",i);

scanf("%d",&a[i]);
}
}
void xuatmang(int a[], int n)
{
for(int i=0; iprintf("%5d",a[i]);
printf("\n\n");
}
// chen x vao vi tri vt
void chenx(int a[], int &n, int vt, int x)
{
if(vt>=0&&vt<=n)
{
for(int i=n;i>vt;i--)
a[i]=a[i-1];
a[vt]=x;
n++;
}
}
main()
{
int a[50],n,x,k;
nhapmang(a,n);
printf("\n\n mang vua nhap la: ");
xuatmang(a,n);


printf("\n\n nhap vi tri k can chen: ");
scanf("%d",&k);

printf("\n\n nhap so x can chen: ");
scanf("%d",&x);
printf("\n\n mang sau khi chen so x = %3d va vi tri k=[%d] la",x,k);
chenx(a,n,k,x);
xuatmang(a,n);
getch();
}
BÀI 47 XÓA NGUYÊN TỐ
#include<stdio.h>
#include<conio.h>
void nhapmang(int a[], int &n)
{
printf("\n nhap so luong phan tu: ");
scanf("%d",&n);
for(int i=0;i{
printf("\n phan tu thu [%d]: ",i);
scanf("%d", &a[i]);
}
}
void xuatmang(int a[], int n)
{
for(int i=0;iprintf("%5d", a[i]);
printf("\n\n");
}
int ktnt(int n)
{
int i,dem=0;
for(i=1;i<=n;i++)

if(n%i==0)
dem++;
if(dem==2)
return 1;
return 0;
}
void xoa(int a[], int &n, int vt)
{
if(vt>=0&&vt

{
for(int i=vt;ia[i]=a[i+1];
n--;
}
}
void xoant(int a[], int &n)
{
int i;
for(i=0;iif(ktnt(a[i])==1)
{
xoa(a,n,i);
i--;
}
}
main()
{
int a[50],n;

nhapmang(a,n);
printf("\n mang vua nhap la: ");
xuatmang(a,n);
xoant(a,n);
printf("\n mang sau khi xoa nguyen to la:");
xuatmang(a,n);
getch();
}

BAI 49 XÓA SỐ NHỎ HƠN K
#include<stdio.h>
#include<conio.h>
void nhapmang(int a[], int &n)
{
printf("\n nhap so luong phan tu: ");
scanf("%d",&n);
for(int i=0;i{
printf("\n phan tu thu [%d]: ",i);
scanf("%d",&a[i]);
}
}


void xuatmang (int a[], int n)
{
int i;
for(i=0;iprintf("%5d",a[i]);
printf("\n\n");

}
int xoa(int a[], int &n, int vt)
{
if(vt<n&&vt>=0)
for(int i=vt;ia[i]=a[i+1];
n--;
}
int xoak(int a[], int &n)
{
int i,k;
printf("\n nhap k: ");
scanf("%d",&k);
for(i=0;iif(a[i]{
xoa(a,n,i);
i--;
}
}
main()
{
int a[50],n;
nhapmang(a,n);
printf("\n mang vua nhap la: ");
xuatmang(a,n);
xoak(a,n);
printf("\n mang sau khi xoa la:");
xuatmang(a,n);
getch();

}

BÀI 60 TÁCH MẢNG NGUYÊN TỐ
#include<stdio.h>


×