1. Trang chủ
  2. » Công Nghệ Thông Tin

GIải bài tập thực hành lập trình nhúng Đai Học Công Nghiệp Hà Nội

12 146 0

Đang tải... (xem toàn văn)

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

THÔNG TIN TÀI LIỆU

Thông tin cơ bản

Định dạng
Số trang 12
Dung lượng 42,49 KB

Các công cụ chuyển đổi và chỉnh sửa cho tài liệu này

Nội dung

Trang 1

#include<conio.h>

#include<stdlib.h>

//NGUYEN PHUONG DONG_KTMT1_K13_HAUI

void nhapmang(int *a, int n)

{

int i;

for(i=0;i<n;i++)

{

printf("Nhap phan tu thu [%d] ",i); scanf("%d",a+i);

}

}

void xuatmang(int *a, int n)

{

int i;

for(i=0;i<n;i++)

{

printf("%5d",*(a+i));

}

}

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;

}

//hien thi so nguyen to

void htnt(int *a, int n)

{

int i;

for(i=0;i<n;i++)

if(ktnt(*(a+i))==1)

printf("%5d",*(a+i));

}

int ktcp(int n)

{

int i;

for(i=1;i<=n;i++)

if(i*i==n)

return 1;

return 0;

}

//chen x vao k

void chen(int *a,int *n,int x, int k)

{

int i;

for(i=*n;i>k;i )

*(a+i)=*(a+i-1);

*(a+k)=x;

Trang 2

}

//chen maxnt vao vtdt

int maxnt(int *a, int n)

{

int i,max,dem=0;

for(i=0;i<n;i++)

if(ktnt(*(a+i))==1)

{

max=*(a+i);

dem++;

}

for(i=0;i<n;i++)

if(ktnt(*(a+i))==1 && *(a+i)>max)

{

max=*(a+i);

}

return max;

}

//chen max nguyen to vao vi tri dau tien trong mang

void chen_maxnt_vtdt(int *a, int *n)

{

int k=maxnt(a,*n);

chen(a,n,k,0);

}

//chen so nguyen to dau tien vao vi tri k

int ntdt(int *a, int n)

{

int i;

for(i=0;i<n;i++)

if(ktnt(*(a+i))==1)

{

break;

}

return *(a+i);

}

void chen_ntdt_k(int *a, int *n)

{

int k;

int q=ntdt(a,*n);

chen(a,n,q,k);

}

//chen so nguyen to cuoi cung vao vi tri nho nhat dau tien trong mang int ntcc(int *a, int n)

{

int i;

for(i=n-1;i>0;i )

if(ktnt(*(a+i))==1)

return *(a+i) ;

}

int vtmindt(int *a,int n)

Trang 3

int i,min,vt=-1;

min=*a;

for(i=0;i<n;i++)

if(*(a+i)<min)

{

vt=i;

break;

}

return i;

}

void chen3(int *a, int *n)

{

int o=ntcc(a,*n);

int l=vtmindt(a,*n);

chen(a,n,o,l);

}

//chen so chinh Phuong nho nhat vao vi tri cuoi cung int mincp(int *a, int n)

{

int i,min,dem=0;

for(i=0;i<n;i++)

if(ktcp(*(a+i))==1)

{

min=*(a+i);

dem++;

}

for(i=0;i<n;i++)

if(ktcp(*(a+i))==1 && *(a+i)<min)

{

min=*(a+i);

dem++;

}

return min;

if(dem==0)

return 0;

}

int vtcc(int *a, int n)

{

int i,vt=-1;

for(i=n-1;i>0;i )

{

vt=i;

break;

}

return vt;

}

void chen4(int *a, int *n)

{

int z=mincp(a,*n);

int x=vtcc(a,*n);

chen(a,n,z,x);

}

//chen maxnt vao vtcpdt

Trang 4

int vtcpdt(int *a, int n)

{

int i,vt=-1;

for(i=0;i<n;i++)

if(ktcp(*(a+i))==1)

{

vt=i;

break;

}

return vt;

}

chen5(int *a, int *n)

{

int z=maxnt(a,*n);

int x=vtcpdt(a,*n);

chen(a,n,z,x);

}

int vtmincpdt(int *a, int n)

{

int i,min,vt=-1;

for(i=0;i<n;i++)

if(ktcp(*(a+i))==1)

{

min=*(a+i);

}

for(i=0;i<n;i++)

if(ktcp(*(a+i))==1 && *(a+i)<min)

{

min=*(a+i);

vt=i;

break;

}

return vt;

}

void chen6(int *a, int *n)

{

int z=maxnt(a,*n);

int x=vtmincpdt(a,*n);

chen(a,n,z,x);

}

//chen min chinh Phuong vao vi tri nguyen to cuoi cung int vtntcc(int *a, int n)

{

int i,vt=-1;

for(i=0;i<n;i++)

if(ktnt(*(a+i))==1)

{

vt=i;

}

return vt;

}

void chen7(int*a, int *n)

{

int z=mincp(a,*n);

Trang 5

int x=vtntcc(a,*n);

chen(a,n,z,x);

}

//xoa

void xoa(int *a, int *n,int k)

{

int i;

for(i=k;i<*n-1;i++)

*(a+i)=*(a+i+1);

(*n) ;

}

//xoa am

void xoa1(int *a, int *n)

{

int i;

for(i=0;i<*n;)

if(*(a+i)<0)

xoa(a,n,i);

else i++;

}

//xoa maxnt

void xoa2(int *a, int *n)

{

int i,m;

m=maxnt(a,*n);

for(i=0;i<*n;)

if( *(a+i)==m )

xoa(a,n,i);

else i++;

}

//xoa max chinh phuong chan

int maxcpc(int *a, int n)

{

int i,max;

for(i=0;i<n;i++)

if(ktcp(*(a+i))==1 && *(a+i)%2==0)

max=*(a+i);

for(i=0;i<n;i++)

if(ktcp(*(a+i))==1 && *(a+i)%2==0 && *(a+i)>max) max=*(a+i);

return max;

}

void xoa3(int *a, int *n)

{

int i;

int m=maxcpc(a,*n);

for(i=0;i<*n;)

if(*(a+i)==m)

xoa(a,n,i);

else i++;

}

//vitri minduong

Trang 6

int mind(int *a, int n)

{

int i,m,dem=0;

for(i=0;i<n;i++)

if(*(a+i)>0)

{

m=*(a+i);

dem++;

}

for(i=0;i<n;i++)

if(*(a+i)>0 && *(a+i)<m)

{

m=*(a+i);

dem++;

}

return m;

if(dem==0)

return 0;

}

void vtmd(int *a,int n)

{

int i,m;

m=mind(a,n);

for(i=0;i<n;i++)

if(*(a+i)==m)

printf("%5d",i);

}

//vitri min chinh Phuong le dau tien

int mincpledt(int *a, int n)

{

int i,m;

for(i=0;i<n;i++)

if(ktcp(*(a+i))==1 )

{

m=*(a+i);

}

for(i=0;i<n;i++)

if(ktcp(*(a+i))==1 && *(a+i)%2!=0)

{

m=*(a+i);

}

for(i=0;i<n;i++)

if(ktcp(*(a+i))==1 && *(a+i)%2!=0 && *(a+i)<m) {

m=*(a+i);

break;

}

return m;

}

int vt2(int *a, int n)

{

int i,m;

m=mincpledt(a,n);

Trang 7

if(*(a+i)==m)

break;

printf("%5d",i);

}

//dem cac phan tu chinh phuong

int demcp(int *a, int n)

{

int i,dem=0;

for(i=0;i<n;i++)

if(ktcp(*(a+i))==1)

{

dem++;

}

return dem;

if(dem==0)

return 0;

}

//tinh trung binh cong cac so nguyen to

int tbnt(int *a, int n)

{

int i,dem=0,tong=0;

for(i=0;i<n;i++)

if(ktnt(*(a+i))==1)

{

tong=tong+ *(a+i);

dem++;

}

return 1.0*tong/dem;

}

//tinh tong cac so chinh phuong

int tong1(int *a, int n)

{

int i,tong=0;

for(i=0;i<n;i++)

if(ktcp(*(a+i))==1)

tong=tong+*(a+i);

return tong;

}

int hoanvi(int *a, int *b)

{

int tg;

tg=*a;

*a=*b;

*b=tg;

}

//sap xep tang dan nguyen to ben trai va giam dan khong nguyen to ben phai void sxnt1(int*a, int n )

{

int i,j;

for(i=0;i<n-1;i++)

for(j=i+1;j<n;j++)

Trang 8

if(ktnt(*(a+i))==0 && ktnt(*(a+j))==1 || ktnt(*(a+i))==1

&& ktnt(*(a+j))==1 && *(a+i)>*(a+j) ||ktnt(*(a+i))==0 && ktnt(*(a+j))==0

&& *(a+i)<*(a+j))

hoanvi(a+i,a+j);

}

//sap xep chan tang dan ben trai le giam dan ben phai

void sxchanle(int*a, int n )

{

int i,j;

for(i=0;i<n-1;i++)

for(j=i+1;j<n;j++)

if(*(a+i)%2!=0 && *(a+j)%2==0 || *(a+i)%2==0 && *(a+j)

%2==0 && *(a+i)>*(a+j) || *(a+i)%2!=0 && *(a+j)%2!=0 && *(a+i)<*(a+j) )

hoanvi(a+i,a+j);

}

//sap xep so am tang dan o dau mang va duong giam gian o cuoi mang

void sxamduong(int *a, int n )

{

int i,j;

for(i=0;i<n-1;i++)

for(j=i+1;j<n;j++)

if(*(a+i)>0 && *(a+j)<0 || *(a+i)<0 && *(a+j)<0 &&

*(a+i)>*(a+j) || *(a+i)>0 && *(a+j)>0 && *(a+i)<*(a+j) )

hoanvi(a+i,a+j);

}

//tach nguyen to

void tach1(int *a, int n,int *nt, int *nnt, int *knt, int *nknt)

{

int i;

*nnt=*nknt=0;

for(i=0;i<n;i++)

{

if(ktnt(*(a+i))==1) {

*(nt+*nnt)=*(a+i);

(*nnt)++;

} if(ktnt(*(a+i))==0) {

*(knt+*nknt)=*(a+i);

(*nknt)++;

} }

}

//tach am duong

void tach2(int *a, int n, int *am,int *nam,int *duong,int *nduong)

{

int i;

*nam=*nduong=0;

for(i=0;i<n;i++)

{

if(*(a+i)<0) {

Trang 9

(*nam)++;

} if(*(a+i)>0) {

*(duong+*nduong)=*(a+i);

(*nduong)++;

} }

} //tach chan le

void tach3(int *a,int n, int *c, int *nc, int *le, int *nle)

{

int i;

*nc=*nle=0;

for(i=0;i<n;i++)

{

if(*(a+i)%2==0) {

*(c+*nc)=*(a+i);

(*nc)++;

} if(*(a+i)%2!=0) {

*(le+*nle)=*(a+i);

(*nle)++;

} }

}

//gop mang

void GopMang(int *a,int na,int *b,int nb,int *c,int *nc) {

int i,n1=0;

for( i=0;i<na;i++)

{

*(c+n1)=*(a+i);n1++;

} for( i=0;i<nb;i++)

{

*(c+n1)=*(b+i);n1++;

} *nc= n1; }

main()

{

int *a, n,

i,k,x,q,l,o,*nt,nnt,*knt,nknt,*am,nam,*duong,nduong,*c,nc,*le,nle;

do

{

printf("Nhap n = ");

scanf("%d",&n);

}while(n<1 || n>50);

a=(int *)malloc(2*n*sizeof(int));

nt=(int *)malloc(2*n*sizeof(int));

knt=(int *)malloc(2*n*sizeof(int));

Trang 10

am=(int *)malloc(2*n*sizeof(int));

duong=(int *)malloc(2*n*sizeof(int));

c=(int *)malloc(2*n*sizeof(int));

le=(int *)malloc(2*n*sizeof(int));

nhapmang(a,n);

printf("\nMang vua nhap la\n");;

xuatmang(a,n);/*

do

{

printf("\nNhap vi tri can chen k ");

scanf("%d",&k);

}while(k<0 || k>n);

printf("\nHay nhap vao so chen x ");

scanf("%d",&x);

chen(a,&n,x,k);

printf("\nMAng sau chen x vao k\n");

xuatmang(a,n);

printf("\nMaxnt: %d",maxnt(a,n));

chen_maxnt_vtdt(a,&n);

printf("\nMang sau chen max nt vao vtdt \n"); xuatmang(a,n);

printf("\nSo nguyen to dau tien:%d ",ntdt(a,n)); do

{

printf("Nhap vi tri k: ");

scanf("%d",&k);

}while(k<0 || k>n);

printf("\n\n");

chen_ntdt_k(a,&n);

xuatmang(a,n);

printf("\nSo nguyen to cuoi cung:%d ",ntcc(a,n)); chen3(a,&n);

printf("\nMang sau chen ntc vao vtmndt la\n"); xuatmang(a,n);

printf("\nVi tri cuoi cung = %d",vtcc(a,n)); printf("\nMin cp la %d",mincp(a,n));

chen4(a,&n);

printf("\nMang sau chen mincp vao vtcc\n");

xuatmang(a,n);

if(mincp(a,n)==1)

{

printf("\nMincp: %d",mincp(a,n));

}

else printf("\nKo co min cp");

printf("\nVi tri ntcc = %d",vtntcc(a,n));

chen7(a,&n);

printf("\nMang sau chen mincp vao vtntcc\n"); xuatmang(a,n);

printf("\nMax cpc la %d",maxcpc(a,n));

printf("\nMang sau xoa maxcpc la\n");

xoa3(a,&n);

xuatmang(a,n);

if(mind(a,n)==1)

Trang 11

printf("\nMin duong %d",mind(a,n));

printf("\nVTMD");

}

else printf("\nKhong co min duong");

vtmd(a,n); /*

printf("\nMin cp le dt %d",mincpledt(a,n));

printf("\nVT Min cp le dt");

vt2(a,n);

if(demcp(a,n)!=0)

{

printf("\nSo cac phan tu chinh phuong la:%d",demcp(a,n)); }

else

printf("\nkhong co phan tu cp nao ");

printf("\nCac so nt la ");

htnt(a,n);

printf("\nTBNT %d",tbnt(a,n));

printf("\nTONG NT %d",tong1(a,n));

printf("\nMang sau khi tach \n");

tach1(a,n,nt,&nnt,knt,&nknt);

if(nnt!=0)

{

printf("\nMang cac phan tu nt\n");

xuatmang(nt,nnt);

}

else

printf("\nKhong co phan tu nt");

if(nknt!=0)

{

printf("\nMang cac phan tu knt\n");

xuatmang(knt,nknt);

}

else

printf("\nKhong co phan tu knt");

tach2(a,n,am,&nam,duong,&nduong);

if(nam!=0)

{

printf("\nMang pt am\n");

xuatmang(am,nam);

}

else

printf("\n Ko co pt am");

if(nduong!=0)

{

printf("\nMang pt duong");

xuatmang(duong,nduong);

}

else

printf("\nKhong co pt duong\n"); */

printf("\nMang sau tach chan le ");

tach3(a,n,c,&nc,le,&nle);

if(nc!=0)

Trang 12

printf("\nMang cac pt chan \n"); xuatmang(c,nc);

}

else

printf("\nKo co pt chan");

if(nle!=0)

{

printf("\nMang cac pt le \n"); xuatmang(le,nle);

}

else

printf("\nKo co pt le");

free(a);

free(nt);

free(knt);

free(am);

free(duong);

free(c);

free(le);

getch();

}

Ngày đăng: 27/11/2020, 22:40

TỪ KHÓA LIÊN QUAN

🧩 Sản phẩm bạn có thể quan tâm

w