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

Bài tập lập trình PHẦN II MẢNG

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 (62.05 KB, 19 trang )

PHẦN II : MẢNG
Câu 1: viết chương trình nhập một mảng một chiều a gồm n số thực. hãy tính
và in ra màn hình trung bình cộng của các phần tử trong mảng.
#include <conio.h>
#include <stdio.h>
void nhap(float a[],int n)
{int i;
for (i=0;i{printf ("a[%d]=",i);
scanf("%f",&a[i]);
}
}
void xem(float a[],int n)
{int i;
for (i=0;iprintf("%5.2f",a[i]);
}
float tbc(float a[],int n)
{int i; float s;
for(i=0;ireturn (s/n);
}
void main()
{clrscr();
float a[50];int n;
printf("\n nhap so luong phan tu cua mang n= ");
scanf("%d",&n);
nhap(a,n);
printf("\n xem mang:");
xem(a,n);
printf("\n trung binh cong cac phan tu cua mang=%5.2f",tbc(a,n));


getch();
}
Câu 2: viết chương trình nhập một mảng một chiều n số nguyên. Sắp xếp
mảng theo thứ tự giảm dần. In ra màn hình mảng trước và sau khi sắp xếp.
#include <conio.h>
#include <stdio.h>
void nhap(int a[],int n)


{int i;
for (i=0;i{printf ("a[%d]=",i);
scanf("%d",&a[i]);
}
}
void xem(int a[],int n)
{int i;
for (i=0;iprintf("%5d",a[i]);
}
void sap_xep(int a[],int n)
{int i,j,tg;
for (j=0;jfor (i=j+1;iif (a[i]{tg=a[i];
a[i]=a[j];
a[j]=tg;
}
}

void main()
{clrscr();
int a[50], n;
printf("\n nhap so luong phan tu cua mang n= ");
scanf("%d",&n);
nhap(a,n);
printf("\n mang truoc khi sap xep la:");
xem(a,n);
sap_xep(a,n);
printf("\n mang sau khi sap xep la:");
xem(a,n);
getch();
}
Câu 3: viết chương trình nhập một mảng một chiều n số thực. Sắp xếp mảng
theo thứ tự giảm dần. In ra màn hình mảng trước và sau khi sắp xếp.
#include <conio.h>
#include <stdio.h>
void nhap(float a[],int n)
{int i;
for (i=0;i{printf ("a[%d]=",i);


scanf("%f",&a[i]);
}
}
void xem(float a[],int n)
{int i;
for (i=0;iprintf("%5.2f",a[i]);

}
void sap_xep(float a[],int n)
{int i,j; float tg;
for (j=0;jfor (i=j+1;iif (a[i]>a[j])
{tg=a[i];
a[i]=a[j];
a[j]=tg;
}
}
void main()
{clrscr();
int n;
float a[50];
printf("\n nhap so luong phan tu cua mang n= ");
scanf("%d",&n);
nhap(a,n);
printf("\n mang truoc khi sap xep la:");
xem(a,n);
sap_xep(a,n);
printf("\n mang sau khi sap xep la:");
xem(a,n);
getch();
}
Câu 4: viết chương trình nhập một mảng một chiều n số thực. Đếm và thông
báo ra màn hình trong mảng có bao nhiêu phần tử âm.
#include <conio.h>
#include <stdio.h>
void nhap(float a[],int n)

{int i;
for (i=0;i{printf ("a[%d]=",i);
scanf("%f",&a[i]);
}


}
void xem(float a[],int n)
{int i;
for (i=0;iprintf("%7.2f",a[i]);
}
int dem(float a[],int n)
{int i=0,d=0;
while (i{if (a[i]<0) d++;
i++;
}
return d;
}
void main()
{clrscr();
int n;
float a[50];
printf("\n nhap so luong phan tu cua mang n= ");
scanf("%d",&n);
nhap(a,n);
printf("\n xem mang:");
xem(a,n);

printf("\n so phan tu am cua mang: %5d",dem(a,n));
getch();
}
Câu 5: viết chương trình nhập một mảng một chiều n số thực. Đếm và thông
báo ra màn hình trong mảng có bao nhiêu phần tử dương.
#include <conio.h>
#include <stdio.h>
void nhap(float a[],int n)
{int i;
for (i=0;i{printf ("a[%d]=",i);
scanf("%f",&a[i]);
}
}
void xem(float a[],int n)
{int i;
for (i=0;iprintf("%7.2f",a[i]);
}


int dem(float a[],int n)
{int i=0,d=0;
while (i{if (a[i]>0) d++;
i++;
}
return d;
}
void main()

{clrscr();
int n;
float a[50];
printf("\n nhap so luong phan tu cua mang n= ");
scanf("%d",&n);
nhap(a,n);
printf("\n xem mang:");
xem(a,n);
printf("\n so phan tu duong cua mang: %5d",dem(a,n));
getch();
}
Câu 6: viết chương trình nhập một mảng một chiều n số thực. Tìm và in ra
màn hình giá trị lớn nhất của mảng.
#include <conio.h>
#include <stdio.h>
void nhap(float a[],int n)
{int i;
for (i=0;i{printf ("a[%d]=",i);
scanf("%f",&a[i]);
}
}
void xem(float a[],int n)
{int i;
for (i=0;iprintf("%5.2f",a[i]);
}
float tim_max(float a[],int n)
{int i=1,max=a[0];
while (i

{if (maxi++;
}


return max;
}
void main()
{clrscr();
float a[50];
int n;
printf("\n nhap so luong phan tu cua mang n= ");
scanf("%d",&n);
nhap(a,n);
printf("\n xem mang:");
xem(a,n);
printf("\n phan tu lon nhat cua mang: %5.2f",tim_max(a,n));
getch();
}
Câu 7: viết chương trình nhập một mảng một chiều n số nguyên. Tính và in
ra màn hình tổng của các phần tử trong mảng.
#include <conio.h>
#include <stdio.h>
void nhap(int a[],int n)
{int i;
for (i=0;i{printf ("a[%d]=",i);
scanf("%d",&a[i]);
}
}

void xem(int a[],int n)
{int i;
for (i=0;iprintf("%5d",a[i]);
}
int tong(int a[],int n)
{int i,s=0;
for(i=0;ireturn s;
}
void main()
{clrscr();
int a[50],n;
printf("\n nhap so luong phan tu cua mang n= ");
scanf("%d",&n);
nhap(a,n);
printf("\n xem mang:");


xem(a,n);
printf("\n tong cac phan tu cua mang=%5d",tong(a,n));
getch();
}
Câu 8: viết chương trình nhập một mảng một chiều n số nguyên dương. Tính
và thông báo ra màn hình tổng các phần tử có giá trị chẵn trong mảng.
#include <conio.h>
#include <stdio.h>
void nhap(int a[],int n)
{int i;
for (i=0;i

{nhap: printf ("a[%d]=",i);
scanf("%d",&a[i]);
if (a[i]<=0)
{printf(" nhap lai a[%d] \n",i);
goto nhap;
}
}
}
void xem(int a[],int n)
{int i;
for (i=0;iprintf("%5d",a[i]);
}
int tong(int a[], int n)
{int i=0,s=0;
while (i{if (a[i]%2==0) s=s+a[i];
i++;
}
return s;
}
void main()
{clrscr();
int a[50], n;
printf("\n nhap so luong phan tu cua mang n= ");
scanf("%d",&n);
nhap(a,n);
printf("\n xem mang:");
xem(a,n);
printf("\n tong cac phan tu chan trong manng: %5d",tong(a,n));

getch();


}
Câu 9: viết chương trình nhập một mảng một chiều n số nguyên dương. Tính
và thông báo ra màn hình tổng các phần tử có giá trị lẻ trong mảng.
#include <conio.h>
#include <stdio.h>
void nhap(int a[],int n)
{int i;
for (i=0;i{nhap: printf ("a[%d]=",i);
scanf("%d",&a[i]);
if (a[i]<=0)
{printf(" nhap lai a[%d] \n",i);
goto nhap;
}
}
}
void xem(int a[],int n)
{int i;
for (i=0;iprintf("%5d",a[i]);
}
int tong(int a[], int n)
{int i=0,s=0;
while (i{if (a[i]%2!=0) s=s+a[i];
i++;
}

return s;
}
void main()
{clrscr();
int a[50], n;
printf("\n nhap so luong phan tu cua mang n= ");
scanf("%d",&n);
nhap(a,n);
printf("\n xem mang:");
xem(a,n);
printf("\n tong cac phan tu le trong manng: %5d",tong(a,n));
getch();
}


Câu 10: viết chương trình nhập và xem mảng một chiều n số nguyên bằng
cách sử dụng con trỏ.
#include <conio.h>
#include <stdio.h>
void nhap(int a[],int n)
{int i,*p;
p=a;
for (i=0;i{printf("a[%d]= ",i);
scanf("%d",p);
p++;
}
}
void xem(int a[],int n)
{int i,*p;

p=a;
for (i=0;i{printf("%5d",*p);
p++;
}
}
void main()
{clrscr();
int a[50],n;
printf("\n nhap so phan tu cua mang n= ");
scanf("%d",&n);
printf("\n nhap mang nho con tro:\n");
nhap(a,n);
printf("\n xem mang nho con tro:");
xem(a,n);
getch();
}
Câu 11: viết chương trình nhập vào một mảng hai chiều amxn gồm các số
nguyên. Hãy in ra màn hình dạng chuyển vị của ma trận a.
#include <conio.h>
#include <stdio.h>
void nhap(int a[][50],int n,int m)
{int i,j,tg;
for (i=0; ifor (j=0; j{printf("phan tu thu [%d][%d]= ",i,j);


scanf("%d",&tg); a[i][j]=tg;
}

}
void xem(int a[][50],int n,int m)
{int i,j;
for (i=0;i{for (j=0;jprintf("%5d",a[i][j]);
printf("\n");
}
}
void chuyen_vi(int a[][50],int n,int m)
{int i,j;
for (j=0;j{for (i=0;iprintf("%5d",a[i][j]);
printf("\n");
}
}
void main()
{clrscr();
int a[50][50],n,m;
printf("\n nhap so hang n so cot m:\n");
scanf("%d%d",&n,&m);
printf("\n nhap mang:\n");
nhap(a,n,m);
printf("\n xem mang:\n");
xem(a,n,m);
printf("\n dang ma tran chuyen vi:\n");
chuyen_vi(a,n,m);
getch();
}

Câu12: viết chương trình nhập hai ma trận anxm ,bnxm gồm các số nguyên. Hãy
tính và in ra màn hình ma trận cnxm là tổng của hai ma trận trên.
#include <conio.h>
#include <stdio.h>
void nhap(int a[][50],int n,int m)
{int i,j,tg;
for (i=0; ifor (j=0; j{printf("phan tu thu [%d][%d]= ",i,j);
scanf("%d",&tg); a[i][j]=tg;


}
}
void xem(intt a[][50],int n,int m)
{int i,j;
for (i=0;i{for (j=0;jprintf("%5d",a[i][j]);
printf("\n");
}
}
void cong(int a[][50],int b[][50],int c[][50],int n,int m)
{int i,j;
for (i=0;ifor (j=0;jc[i][j]=a[i][j]+b[i][j];
}
void main()
{int a[50][50],b[50][50],c[50][50],m,n;

clrscr();
printf("\n nhap so hang n so cot m:\n");
scanf("%d%d",&n,&m);
printf("\n nhap cac phan tu cua a:\n");
nhap(a,n,m);
printf("\n nhap cac phan tu cua b:\n");
nhap(b,n,m);
cong(a,b,c,n,m);
printf("\n mang sau khi cong:\n");
xem(c,n,m);
getch();
}
Câu 13: viết chương trình nhập và xem mảng hai chiều anxm, tính và in ra màn
hình tổng các phần tử nằm trên đường chéo chính.
#include <conio.h>
#include <stdio.h>
void nhap(int a[][50],int n)
{int i,j,tg;
for (i=0; ifor (j=0; j{printf("phan tu thu [%d][%d]= ",i,j);
scanf("%d",&tg); a[i][j]=tg;
}
}


void xem(int a[][50],int n)
{int i,j;
for (i=0;i{for (j=0;j

printf("%5d",a[i][j]);
printf("\n");
}
}
int tong(int a[][50],int n)
{int i,j,s=0;
for (i=0;ifor (j=0;jif (i==j) s=s+a[i][j];
return s;
}
void main()
{int a[50][50],n;
clrscr();
printf("\n nhap so hang so cot cua ma tran vuong: ");
scanf("%d",&n);
printf("\n nhap cac phan tu cua mang:\n");
nhap(a,n);
printf("\n xem mang:\n");
xem(a,n);
printf("\n tong cac phan tu tren duong cheo chinh la: %5d",tong(a,n));
getch();
}
Câu 14: viết chương trình nhập hai ma trận anxm ,bnxm gồm các số nguyên. Hãy
tính và in ra màn hình ma trận cnxm là hiệu của hai ma trận trên.
#include <conio.h>
#include <stdio.h>
void nhap(int a[][50],int n,int m)
{int i,j,tg;
for (i=0; i

for (j=0; j{printf("phan tu thu [%d][%d]= ",i,j);
scanf("%d",&tg); a[i][j]=tg;
}
}
void xem(int a[][50],int n,int m)
{int i,j;
for (i=0;i

{for (j=0;jprintf("%5d",a[i][j]);
printf("\n");
}
}
void hieu(int a[][50],int b[][50],int c[][50],int n,int m)
{int i,j;
for (i=0;ifor (j=0;jc[i][j]=a[i][j]-b[i][j];
}
void main()
{int a[50][50],b[50][50],c[50][50],m,n;
clrscr();
printf("\n nhap so hang n so cot m:\n");
scanf("%d%d",&n,&m);
printf("\n nhap cac phan tu cua a:\n");
nhap(a,n,m);
printf("\n nhap cac phan tu cua b:\n");
nhap(b,n,m);

hieu(a,b,c,n,m);
printf("\n hieu hai ma tran tren la:\n");
xem(c,n,m);
getch();
}
Câu 15: viết chương trình nhập và xem mảng hai chiều anxm, tìm và in ra màn
hình phần tử lớn nhất của mảng.
#include <conio.h>
#include <stdio.h>
void nhap(int a[][50],int n,int m)
{int i,j,tg;
for (i=0; ifor (j=0; j{printf("phan tu thu [%d][%d]= ",i,j);
scanf("%d",&tg); a[i][j]=tg;
}
}
void xem(int a[][50],int n,int m)
{int i,j;
for (i=0;i{for (j=0;jprintf("%5d",a[i][j]);


printf("\n");
}
}
int tim_max(int a[][50],int n,int m)
{int i,j,max=a[0][0];
for (i=0;i

for (j=0;jif (maxreturn max;
}
void main()
{int a[50][50],n,m;
clrscr();
printf("\n nhap so hang n so cot m:\n");
scanf("%d%d",&n,&m);
printf("\n nhap cac phan tu cua mang:\n");
nhap(a,n,m);
printf("\n xem mang:\n");
xem(a,n,m);
printf("\n phan tu lon nhat cua mang la: %5d",tim_max(a,n,m));
getch();
}
Câu 16: viết chương trình nhập và xem mảng hai chiều anxm, tìm và in ra màn
hình phần tử nhỏ nhất của mảng.
#include <conio.h>
#include <stdio.h>
void nhap(int a[][50],int n,int m)
{int i,j,tg;
for (i=0; ifor (j=0; j{printf("phan tu thu [%d][%d]= ",i,j);
scanf("%d",&tg); a[i][j]=tg;
}
}
void xem(int a[][50],int n,int m)
{int i,j;

for (i=0;i{for (j=0;jprintf("%5d",a[i][j]);
printf("\n");
}
}


int tim_min(int a[][50],int n,int m)
{int i,j,min=a[0][0];
for (i=0;ifor (j=0;jif (min>a[i][j]) min=a[i][j];
return min;
}
void main()
{int a[50][50],n,m;
clrscr();
printf("\n nhap so hang n so cot m:\n");
scanf("%d%d",&n,&m);
printf("\n nhap cac phan tu cua mang:\n");
nhap(a,n,m);
printf("\n xem mang:\n");
xem(a,n,m);
printf("\n phan tu nho nhat cua mang la: %5d",tim_min(a,n,m));
getch();
}
Câu 17: viết chương trình nhập vào một mảng hai chiều anxm gồm các số
nguyên. Hãy xây dựng ma trận b là ma trận chuyển vị của ma trận a. In ra
màn hình hai ma trận a và b.

#include <conio.h>
#include <stdio.h>
void nhap(int a[][50],int n,int m)
{int i,j,tg;
for (i=0; ifor (j=0; j{printf("phan tu thu [%d][%d]= ",i,j);
scanf("%d",&tg); a[i][j]=tg;
}
}
void xem(int a[][50],int n,int m)
{int i,j;
for (i=0;i{for (j=0;jprintf("%5d",a[i][j]);
printf("\n");
}
}
void chuyen_vi(int a[][50],int b[][50],int n,int m)
{int i,j;


for (i=0;ifor (j=0;jb[j][i]=a[i][j];
}
void main()
{clrscr();
int a[50][50],b[50][50],n,m;
printf("\n nhap so hang n so cot m cua ma tran a:\n");

scanf("%d%d",&n,&m);
printf("\n nhap ma tran a:\n");
nhap(a,n,m);
printf("\n xem ma tran a:\n");
xem(a,n,m);
chuyen_vi(a,b,n,m);
printf("\n chuyen vi cua ma tran a la ma tran b:\n");
xem(b,m,n);
getch();
}
Câu 18: viết chương trình nhập vào một mảng hai chiều amxn gồm các số
nguyên. Tính và in ra màn hình tổng của các phần tử trên mỗi hàng.
#include <conio.h>
#include <stdio.h>
void nhap(int a[][50],int n,int m)
{int i,j,tg;
for (i=0; ifor (j=0; j{printf("phan tu thu [%d][%d]= ",i,j);
scanf("%d",&tg); a[i][j]=tg;
}
}
void xem(int a[][50],int n,int m)
{int i,j;
for (i=0;i{for (j=0;jprintf("%5d",a[i][j]);
printf("\n");
}
}

void tinh(int a[][50],int n,int m)
{int i,j,s;
for (i=0;i{for (s=0,j=0;j

s=s+a[i][j];
printf("\n tong cua cac phan tu tren hang %d la: %5d",i+1,s);
}
}
void main()
{clrscr();
int a[50][50],n,m;
printf("\n nhap so hang n so cot m:\n");
scanf("%d%d",&n,&m);
printf("\n nhap cac phan tu cua mang:\n");
nhap(a,n,m);
printf("\n xem mang:\n");
xem(a,n,m);
printf("\n ket qua:\n");
tinh(a,n,m);
getch();
}
Câu 19: viết chương trình nhập vào một mảng hai chiều amxn gồm các số
nguyên. Tính và in ra màn hình tổng của các phần tử trên mỗi cột.
#include <conio.h>
#include <stdio.h>
void nhap(int a[][50],int n,int m)
{int i,j,tg;
for (i=0; i

for (j=0; j{printf("phan tu thu [%d][%d]= ",i,j);
scanf("%d",&tg); a[i][j]=tg;
}
}
void xem(int a[][50],int n,int m)
{int i,j;
for (i=0;i{for (j=0;jprintf("%5d",a[i][j]);
printf("\n");
}
}
void tinh(int a[][50],int n,int m)
{int i,j,s;
for (j=0;j{for (s=0,i=0;is=s+a[i][j];


printf("\n tong cua cac phan tu tren cot %d la: %5d",j+1,s);
}
}
void main()
{clrscr();
int a[50][50],n,m;
printf("\n nhap so hang n so cot m:\n");
scanf("%d%d",&n,&m);
printf("\n nhap cac phan tu cua mang:\n");
nhap(a,n,m);

printf("\n xem mang:\n");
xem(a,n,m);
printf("\n ket qua:\n");
tinh(a,n,m);
getch();
}
Câu 20: viết chương trình nhập vào một mảng hai chiều anxm gồm các số thực.
Đếm và in ra màn hình số phần tử dương có mặt trong mảng.
#include <conio.h>
#include <stdio.h>
void nhap(float a[][50],int n,int m)
{int i,j; float tg;
for (i=0; ifor (j=0; j{printf("phan tu thu [%d][%d]= ",i,j);
scanf("%f",&tg); a[i][j]=tg;
}
}
void xem(float a[][50],int n,int m)
{int i,j;
for (i=0;i{for (j=0;jprintf("%5.2f",a[i][j]);
printf("\n");
}
}
int dem(float a[][50],int n,int m)
{int i,j,d=0;
for (i=0;ifor (j=0;j

if (a[i][j]>0) d++;
return d;


}
void main()
{clrscr();
float a[50][50];
int n,m;
printf("\n nhap so hang n so cot m:");
scanf("%d%d",&n,&m);
printf("\n nhap cac phan tu cua mang:\n");
nhap(a,n,m);
printf("\n xem mang:\n");
xem(a,n,m);
printf("\n so phan tu duong co mat trong mang: %5d",dem(a,n,m));
getch();
}



×