Thứ Năm, 1 Tháng Mười Hai 2022
Trang chủLập trìnhLập trình C/C++Giải bài thực hành 7 – Mảng | Nhập môn lập trình...

Giải bài thực hành 7 – Mảng | Nhập môn lập trình C

DANH SÁCH BÀI VIẾT
Giải bài tập thực hành 1 – Các thành phần trong ngôn ngữ C
Giải bài tập thực hành 2 – Cấu trúc rẽ nhánh
Giải bài tập thực hành 3 – Cấu trúc lặp for
Giải bài thực hành 4 – Cấu trúc lặp While, do…while
Giải bài thực hành 5 – HÀM
Giải bài thực hành 6 – Truyền tham số cho hàm
Giải bài thực hành 7 – Mảng
Giải bài thực hành 8 – Chuỗi ký tự
Giải bài thực hành 9 – Kiểu cấu trúc
Giải bài thực hành 10 – Tập tin

Bài thực hành 7 – Mảng

I, Mảng một chiều

Bài 3: Viết chương trình nhập xuất mảng một chiều các số thực.

Code mẫu

#include<stdio.h>

void NhapMang(float a[],int n) {

            int i;

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

                        printf("Nhap a[%d]: ",i);

                        scanf("%f",&a[i]);

            }

}

void XuatMang(float a[],int n) {

            printf("Cac phan tu da nhap vao la:\n");

            int i;

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

                        printf("a[%d] = %2.3f\n",i,a[i]);

            }

}

int main() {

            int n;

            float a[n];

            printf("Nhap n: ");

            scanf("%d",&n);

            NhapMang(a, n);

            XuatMang(a, n);

}

Bài 4. Viết chương trình khởi tạo giá trị các phần tử là 0 cho mảng một chiều các số nguyên gồm n phần tử.

Code mẫu

#include<stdio.h>

void XuatMang(int a[],int n) {

            printf("Cac phan tu da nhap vao la:\n");

            int i;

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

                        printf("a[%d] = 0\n",i);

            }

}

int main() {

            int n;

            int a[n];

            printf("Nhap n: ");

            scanf("%d",&n);

            XuatMang(a, n);

}

Bài 5. Viết chương trình phát sinh ngẫu nhiên mảng một chiều các số nguyên âm.

Code mẫu

#include<stdio.h>

#include<stdlib.h>

#include<time.h>

void XuatMang(int a[],int n) {

                                             printf("Cac phan tu da nhap vao la: \n");

                                             int i;

                                             srand(time(NULL));

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

                                                printf("a[%d] = %d \n",i,0-rand()%100);

                                             }

}

int main() {

                                             int n;

                                             int a[n];

                                             printf("Nhap n: ");

                                             scanf("%d",&n);

                                             XuatMang(a, n);

}

Bài 6. Viết chương trình nhập mảng các số nguyên và xuất các phần tử lẻ có trong mảng.

Code mẫu

#include<stdio.h>

void NhapMang(int a[],int n) {

                                             int i;

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

                                                printf("Nhap a[%d]: ",i);

                                                scanf("%d",&a[i]);

                                             }

}

void XuatMang(int a[],int n) {

                                             printf("Cac phan tu le co trong mang la:\n");

                                             int i;

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

                                                if(a[i]%2!=0) {

                                                            printf("a[%d] = %d\n",i,a[i]);

                                                }

                                             }

}

int main() {

                                             int n;

                                             int a[n];

                                             printf("Nhap n: ");

                                             scanf("%d",&n);

                                             NhapMang(a, n);

                                             XuatMang(a, n);

}

Bài 7. Viết chương trình nhập mảng các số nguyên và xuất ra các phần tử chẵn nhỏ hơn 20.

Code mẫu

#include<stdio.h>

void NhapMang(int a[],int n) {

                                             int i;

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

                                                printf("Nhap a[%d]: ",i);

                                                scanf("%d",&a[i]);

                                             }

}

void XuatMang(int a[],int n) {

                                             printf("Cac phan tu chan nho hon 20 co trong mang la:\n");

                                             int i;

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

                                                if(a[i]%2==0 && a[i]<20) {

                                                            printf("a[%d] = %d\n",i,a[i]);

                                                }

                                             }

}

int main() {

                                             int n;

                                             int a[n];

                                             printf("Nhap n: ");

                                             scanf("%d",&n);

                                             NhapMang(a, n);

                                             XuatMang(a, n);

}

Bài 8. Viết chương trình nhập mảng các số nguyên và xuất ra màn hình các phần tử là số nguyên tố.

Code mẫu

#include<stdio.h>

void NhapMang(int a[],int n) {

                                             int i;

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

                                                printf("Nhap a[%d]: ",i);

                                                scanf("%d",&a[i]);

                                             }

}

void NT(int n) {

                                             int i;

                                             int ngt=1;

                                             if(n==1)

                                                ngt=0;

                                             else

                                                for(i=2; i<n; i++) {

                                                            if(n%i==0)

                                                                        ngt=0;

                                                }

                                             if(ngt==1)

                                                printf("%d\n",n);

}

void XuatMang(int a[],int n) {

                                             printf("Cac phan tu la so nguyen to co trong mang la:\n");

                                             int i;

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

                                                NT(a[i]);

                                             }

}

int main() {

                                             int n;

                                             int a[n];

                                             printf("Nhap n: ");

                                             scanf("%d",&n);

                                             NhapMang(a, n);

                                             XuatMang(a, n);

}

Bài 9. Viết chương trình nhập mảng các số nguyên N và liệt kê các số nguyên tố nhỏ hơn N, nếu mảng không tồn tại số nguyên tố nào nhỏ hơn N thì phải xuất ra một thông báo.

Code mẫu

#include<stdio.h>

#include<math.h>

void NhapMang(int a[],int n) {

                                             int i;

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

                                                printf("Nhap a[%d]: ",i);

                                                scanf("%d",&a[i]);

                                             }

}

void NT(int x) {

                                             int i;

                                             if(x==1)

                                                return 0;

                                             else {

                                                for(i=2; i<=sqrt(x); i++) {

                                                            if(x%i==0)

                                                                        return 0;

                                                            return 1;

                                                }

                                             }

}

void In(int a[],int n) {

                                             int i;

                                             printf("Cac phan tu la so nguyen to co trong mang la:\n");

                                             int dem=0;

 

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

                                                if(NT(a[i])) {

                                                            printf("a[%d] = %d\n",i,a[i]);

                                                            dem++;

                                                }

                                             }

 

                                             printf("dem = %d",dem);

                                             if(dem==0)

                                                printf("Mang khong co so nguyen to nao!");

}

int main() {

                                             int n;

                                             int a[n];

                                             printf("Nhap n: ");

                                             scanf("%d",&n);

                                             NhapMang(a, n);

                                             In(a, n);

}

Bài 10. Viết chương trình nhập vào mảng một chiều các số nguyên và xuất ra màn hình các phần tử là số chính phương nằm tại những vị trí lẻ trong mảng.

Code mẫu

#include<stdio.h>

#include<math.h>

void NhapMang(int a[],int n) {

                                             int i;

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

                                                printf("Nhap a[%d]: ",i);

                                                scanf("%d",&a[i]);

                                             }

}

void Cp(int x) {

                                             int i;

                                             for(i=1; i<=x; i++) {

                                                if(i*i==x)

                                                            printf("%d\n",x);

                                             }

}

void In(int a[],int n) {

                                             int i;

                                             printf("Cac phan tu le la so chinh phuong co trong mang la:\n");

 

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

                                                if(a[i]%2!=0) {

                                                            Cp(a[i]);

                                                }

                                             }

}

int main() {

                                             int n;

                                             int a[n];

                                             printf("Nhap n: ");

                                             scanf("%d",&n);

                                             NhapMang(a, n);

                                             In(a, n);

}

Bài 11. Viết chương trình nhập dãy n số và in ra tổng các số lẻ trong dãy vừa nhập.

Code mẫu

#include<stdio.h>

void NhapMang(int a[],int n)

{

                                             int i;

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

                                             {

                                                printf("Nhap a[%d]: ",i);

                                                scanf("%d",&a[i]);

                                             }

}

void In(int a[],int n)

{

                                                int i;

                                                int s=0;

                                             printf("Tong cac so le trong mang la: \n");

                                            

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

                                             {

                                                if(a[i]%2!=0)

                                                s+=a[i];

                                             }

                                             printf("%d",s);

}

int main()

{

                                             int n;

                                             int a[n];

                                             printf("Nhap n: ");

                                             scanf("%d",&n);

                                             NhapMang(a, n);

                                             In(a, n);

}

Bài 12. Viết chương trình cho phép nhập n số sắp xếp và in ra các số theo thứ tự tăng dần.

Code mẫu

#include<stdio.h>

#include<math.h>

void NhapMang(int a[],int n)

{

                                             int i;

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

                                             {

                                                printf("Nhap a[%d]: ",i);

                                                scanf("%d",&a[i]);

                                             }

}

void SapXepTang(int a[], int n)

{

                                             int i,j;

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

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

                                                            if(a[i]>a[j])

                                                            {

                                                                        int tem=a[i];

                                                                        a[i]=a[j];

                                                                        a[j]=tem;

                                                            }

}

void In(int a[],int n)

{

                                                int i;

                                             printf("Mang sau khi da sap xep la: \n");

                                            

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

                                             {

                                                SapXepTang(a, n);

                                             }

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

                                             {

                                                            printf("a[%d] = %d \n",i,a[i]);

                                             }

}

int main()

{

                                             int n;

                                             int a[n];

                                             printf("Nhap n: ");

                                             scanf("%d",&n);

                                             NhapMang(a, n);

                                             In(a, n);

}

Bài 13. Viết chương trình tính giá trị của đa thức Tại giá trị x với bậc n, giá trị x và các hệ số của đa thức nhập từ bàn phím.

Code mẫu

#include<stdio.h>

#include<math.h>

void NhapMang(int a[],int n)

{

                                             int i;

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

                                             {

                                                printf("Nhap a[%d]: ",i);

                                                scanf("%d",&a[i]);

                                             }

}

int main()

{

                                             int n,x;

                                             int a[n];

                                             printf("Nhap n: ");

                                             scanf("%d",&n);

                                             printf("Nhap x: ");

                                             scanf("%d",&x);

                                             NhapMang(a, n);

                                            

                                             int i;

                                                int s=0;

                                             printf("gia tri cua da thuc P(x) la: \n");

                                            

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

                                             {

                                                s = s + a[i] * pow( x , i );

                                             }

                                             printf("%d",s);

}

Bài 14. Viết chương trình nhập mảng n phần tử số nguyên, đếm, tính tổng, và liệt kê các số nguyên tố và số chính phương trong mảng.

Code mẫu

#include<stdio.h>

#include<math.h>

void NhapMang(int a[],int n)

{

                                             int i;

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

                                             {

                                                printf("Nhap a[%d]: ",i);

                                                scanf("%d",&a[i]);

                                             }

}

int Nt(int n)

{

                                             if(n == 1) return 0;

                                             int i;

                                             for(i=2;i<=sqrt(n);i++)

                                                if(n%i == 0)

                                                            return 0;

                                             return 1;

}

void XuatMangNT(int a[],int n)

{

                                             printf("Cac phan tu la so nguyen to co trong mang la: \n");

                                             int i;

                                             int demnt=0;

                                             int snt=0;

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

                                             {

                                                if(Nt(a[i]))

                                                {

                                                            printf("a[%d] = %d \n",i,a[i]);

                                                            demnt++;

                                                            snt+=a[i];

                                                }

                                             }

                                             printf("Mang co %d so nguyen to. \n",demnt);

                                             printf("Tong cac so nguyen to trong mang la: %d \n",snt);

}

int cp(int n)

{

                                             if(n == sqrt(n) * sqrt(n))

                                             return 1;

                                             else

                                             return 0;

}

void incp(int a[],int n)

{

                                             int i;

                                             int demcp=0;

                                             int s=0;

                                             printf("Cac phan tu la so chinh phuog trong mang: \n");

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

                                             {

                                                if(cp(a[i]))

                                                {

                                                printf("a[%d] = %d \n",i,a[i]);

                                                demcp++;

                                                s+=a[i];                     

                                                }

                                             }

                                             printf("Mang co %d so chinh phuong. \n",demcp);

                                             printf("Tong cac so chinh phuong trong mang la: %d \n",s);

}

int main()

{

                                             int n;

                                             int a[n];

                                             printf("Nhap n: ");

                                             scanf("%d",&n);

                                             NhapMang(a, n);

                                             incp(a, n);

                                             XuatMangNT(a, n);

}

Bài 15. Viết chương trình nhập mảng n phần tử số nguyên, nhập phân tử cần tìm kiếm M, nếu tìm thấy: thông báo số lượng và vị trí của những phần tử tìm thấy, ngược lại thông báo không tìm thấy.

Code mẫu

#include<stdio.h>

void NhapMang(int a[],int n)

{

                                             int i;

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

                                             {

                                                printf("Nhap a[%d]: ",i);

                                                scanf("%d",&a[i]);

                                             }

}

int main()

{

                                             int n,m;

                                             int a[n];

                                             printf("Nhap n: ");

                                             scanf("%d",&n);

                                             printf("Nhap phan tu can tim kiem M: ");

                                             scanf("%d",&m);

                                             NhapMang(a, n);

                                             int i;

                                             int demtim=0;

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

                                             {

                                                if(m == a[i])

                                                {

                                                            printf("vi tri M trong mang: a[%d] \n",i);

                                                            demtim++;

                                                }

                                             }

                                             printf("So luong M tim thay trong mang la: %d \n",demtim);

                                             if(demtim==0)

                                             printf("Khong tim thay M trong mang.");

}

Bài 16. Viết hàm tìm vị trí phần tử xuất hiện cuối cùng trong mảng.

Code mẫu

void Timphantucuoicung(int a[],int n)
{

    printf("Phan tu xuat hien cuoi cung trong mang la: ");
	printf("a[%d] = %d \t",n-1,a[n-1]);

}

Bài 17. Viết hàm tìm vị trí của phần tử nhỏ nhất trong mảng các số nguyên.

Code mẫu

int Min(int a[],int n)
{

                                             int min, mini,i;

                                             min = a[0];

                                             mini = 0;

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

                                             if(a[i]<min)

                                             {

                                                min = a[i];

                                                mini = i;

                                             }

                                             return mini;

}

Bài 18. Viết hàm in vị trí các phần tử nguyên tố trong mảng các số nguyên.

Code mẫu

int Nt(int n)

{

                                             if(n == 1) return 0;

                                             int i;

                                             for(i=2;i<=sqrt(n);i++)

                                                if(n%i == 0)

                                                            return 0;

                                             return 1;

}

void XuatMangNT(int a[],int n)

{

                                             printf("Cac phan tu la so nguyen to co trong mang la: \n");

                                             int i;

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

                                             {

                                                if(Nt(a[i]))

                                                {

                                                            printf("a[%d] = %d \n",i,a[i]);

                                                }

                                             }

}

Bài 19. Viết hàm tìm vị trí phần tử âm lớn nhất trong mảng.

Code mẫu

void TachMang(int a[], int na, int b[],int nb)

{

                                             int i;

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

                                             if(a[i]<0)

                                             {

                                                b[nb] = a[i];

                                                nb++;

                                             }

}

void TimPhanTuAmLonNhat(int b[],int nb)

{

                                             printf("Phan tu am lon nhat trong mang la: ");

                                             int max,maxi,i;

                                             max = b[0];

                                             maxi = 0;

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

                                                if(b[i]>max)

                                                {

                                                            max = b[i];

                                                            maxi = i;

                                                }

                                                return max;

                                               

}

Bài 20. Viết hàm in các phần tử là bội của 3 và 5 trong mảng.

Code mẫu

void InBoi(int a[],int n)

{

                                             printf("Cac phan tu la boi cua 3 va 5 trong mang la: ")

                                             int i;

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

                                                if((a[i]%3==0) && (a[i]%5==0))

                                                {

                                                            printf("a[%d] = %d \n",i,a[i]);

                                                }

}

Bài 21. Viết hàm đếm các phần tử âm, dương trong mảng.

Code mẫu

void DemAmDuong(int a[];int n)

{

                                             int demam=0;

                                             int demduong=0;

                                             int i;

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

                                                if(a[i]>0)

                                                {

                                                            demduong++;

                                                }

                                                else

                                                {

                                                            demam++;

                                                }

                                             printf("Mang co %d so am, %d so duong.",demam,demduong);

}

Bài 22. Viết hàm đếm số lần xuất hiện của phần tử x trong mảng.

Code mẫu

void DemX(int a[],int n)

{

                                            

                                             int i;

                                             int x;

                                             int demx=0;

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

                                             {

                                                if(x == a[i])

                                                {

                                                            demx++;

                                                }

                                             }

                                             printf("So X xuat hien %d lan trong mang.",demx);

}

Bài 23. Viết hàm đếm các phần tử là số nguyên tố trong mảng.

Code mẫu

int Nt(int n)

{

                                             if(n == 1) return 0;

                                             int i;

                                             for(i=2;i<=sqrt(n);i++)

                                                if(n%i == 0)

                                                            return 0;

                                             return 1;

}

void DemNT(int a[],int n)

{

                                             int i;

                                             int demnt=0;

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

                                             {

                                                if(Nt(a[i]))

                                                {

                                                            demnt++;

                                                }

                                             }

                                             printf("Mang co %d so nguyen to.",demnt);

}

Bài 24. Viết hàm tính tổng các phần tử chẵn trong mảng.

Code mẫu

void TongChan(int a[],int n)

{

                                             int i;

                                             int s=0;

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

                                             {

                                                if(a[i]%2==0)

                                                {

                                                            s+=a[i];

                                                }

                                             }

                                             printf("Tong cac phan tu chan la: %d.",s);

}

Bài 25. Viết hàm tính tổng các phần tử lẻ trong mảng các số nguyên.

Code mẫu

void TongLe(int a[],int n)

{

                                             int i;

                                             int s=0;

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

                                             {

                                                if(a[i]%2!=0)

                                                {

                                                            s+=a[i];

                                                }

                                             }

                                             printf("Tong cac phan tu le la: %d.",s);

}

Bài 26. Viết hàm tính tổng các phần tử nguyên tố trong mảng.

Code mẫu

int Nt(int n)

{

                                             if(n == 1) return 0;

                                             int i;

                                             for(i=2;i<=sqrt(n);i++)

                                                if(n%i == 0)

                                                            return 0;

                                             return 1;

}

void TongNT(int a[],int n)

{

                                             int i;

                                             int snt=0;

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

                                             {

                                                if(Nt(a[i]))

                                                {

                                                            snt+=a[i];

                                                }

                                             }

                                             printf("Tong cac so nguyen to trong mang la: %d \n",snt);

}

Bài 27. Viết hàm sắp xếp mảng theo thứ tự giảm dần.

Code mẫu

Void SapXepGiam(int a[],int n)

{

                                             int i,j;

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

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

                                                            if(a[i]<a[j])

                                                            {

                                                                        int tem=a[i];

                                                                        a[i]=a[j];

                                                                        a[j]=tem;

                                                            }

}

Bài 28. Viết hàm sắp xếp các phần tử lẻ tăng dần.

Code mẫu

Void SapXepLeTang(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))

                                                            {

                                                                        if(a[i]>a[j])

                                                                        {

                                                                                    int tem=a[i];

                                                                                    a[i]=a[j];

                                                                                    a[j]=tem;

                                                                        }          

                                                            }

}

Bài 29. Viết hàm sắp xếp các phần tử chẵn giảm dần.

Code mẫu

Void SapXepChanGiam(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))

                                                            {

                                                                        if(a[i]<a[j])

                                                                        {

                                                                                    int tem=a[i];

                                                                                    a[i]=a[j];

                                                                                    a[j]=tem;

                                                                        }          

                                                            }

}

II, Mảng một chiều

Bài 30: Viết hàm nhập ma trận các số nguyên dương.

Code mẫu

#define max 100

void NhapMangHaiChieu(int a[max][max],int n,int m)

{

            int i,j;

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

                        for(j=0;j<m;j++)

                        {

                                    printf("a[%d][%d] = ",i,j);

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

                        }

}

Code mẫu

Bài 31. Viết hàm nhập/xuất ma trận các số thực.

Code mẫu

#define max 100

void NhapMangHaiChieu(float a[max][max],int n,int m)

{

            int i,j;

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

                        for(j=0;j<m;j++)

                        {

                                    printf("a[%d][%d] = ",i,j);

                                    scanf("%f",&a[i][j]);

                        }

}

void XuatMangHaiChieu(float a[max][max],int n,int m)

{

                        int i,j;

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

            {

                                    for(j=0;j<m;j++)

                        {

                                    printf("a[%d][%d] = %2.3f\t",i,j,a[i][j]);

                        }

                        printf("\n");

            }

}

Bài 32. Viết hàm tạo ma trận a các số nguyên gồm 9 dòng 14 cột. Trong đó phần tử a[i][j] = j*j.

Code mẫu

void XuatMangHaiChieu(int a[10][15],int n,int m)

{

                        int i,j;

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

            {

                                    for(j=0;j<m;j++)

                        {

                                    printf("a[%d][%d] = %d\t",i,j,i*j);

                        }

                        printf("\n");

            }

}

Bài 33. Viết chương trình nhập vào hai ma trận vuông A, B có kích thước N x N. Hãy tính tổng,hiệu,tích của 2 ma trận A và B.

Code mẫu

#include <stdio.h>

#define max 100

void NhapMaTran(int A[max][max], int n)

{

                                             int i,j;

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

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

   {

      printf("[%d][%d] =",i,j);

      scanf("%d", &A[i][j]);

   }

}

void XuatMaTran(int A[max][max], int n)

{

                                             int i,j;

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

   {

      printf("\n");

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

         printf("%d\t",A[i][j]);

   }

 

}

void Tong(int A[max][max], int B[max][max], int C[max][max], int n){

   int i,j;

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

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

      C[i][j] = A[i][j]+B[i][j];

}

void Hieu(int A[max][max], int B[max][max], int C[max][max], int n){

   int i,j;

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

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

      C[i][j] = A[i][j]-B[i][j];

}

void Tich(int A[max][max], int B[max][max], int C[max][max], int n)

{

                                              int i,j,k;

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

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

   {

      C[i][k] = 0;

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

         C[i][k] = C[i][k] + A[i][j]*B[j][k];

   }

}

void main()

{

   int A[max][max],B[max][max], C[max][max], n;

 

   printf("Nhap cap n= ");

   scanf("%d",&n);

 

   printf("Nhap vao ma tran A\n");

   NhapMaTran(A,n);

 

   printf("Nhap vao ma tran B\n");

   NhapMaTran(B,n);

 

   printf("Ma tran A vua nhap\n");

   XuatMaTran(A,n);

  

   printf("\nMa tran B vua nhap\n");

   XuatMaTran(B,n);

 

   Tong(A,B,C,n);

   printf("\nMa tran C=A+B\n");

   XuatMaTran(C,n);

  

   Hieu(A,B,C,n);

   printf("\nMa tran C=A-B\n");

   XuatMaTran(C,n);

  

   printf("\nMa tran C=A*B\n");

   Tich(A,B,C,n);

   XuatMaTran(C,n);

}

Bài 34. Viết hàm(chương trình) tính tổng các phần tử trên cùng một dòng.

Code mẫu

#include<stdio.h>

#define max 100

void NhapMangHaiChieuA(int a[max][max],int m,int n)

{

                                             int i,j;

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

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

                                                {

                                                            printf("a[%d][%d] = ",i,j);

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

                                                }

}

int TinhTong(int a[max][max],int m,int n)

{

                                             printf("Tong cac phan tu tren cung mot dong la: \n");

                                             int i,j;

                                             int s;

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

                                             {

                                                s=0;

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

                                                s+=a[i][j];

                                                printf(" %d\t",s);

                                             }

}

void XuatMangHaiChieu(int a[max][max],int m,int n)

{

                                                int i,j;

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

                                             {

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

                                                {

                                                            printf("a[%d][%d] = %d\t",i,j,a[i][j]);

                                                }

                                                printf("\n");

                                             }

}

int main()

{

                                             int n,m;

                                             int a[m][n];

                                            

                                             printf("Nhap so dong N: ");

                                             scanf("%d",&n);

 

                                             printf("Nhap so cot M: ");

                                             scanf("%d",&m);

                                            

                                             NhapMangHaiChieuA(a,m,n);

 

                                             XuatMangHaiChieu(a,m,n);

                                             TinhTong(a,m,n);

}

Bài 35. Viết hàm(chương trình) tính tổng các phần tử trên cùng một cột.

Code mẫu

#include<stdio.h>

#define max 100

void NhapMangHaiChieuA(int a[max][max],int m,int n)

{

                                             int i,j;

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

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

                                                {

                                                            printf("a[%d][%d] = ",i,j);

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

                                                }

}

int TinhTongCot(int a[max][max],int m,int n)

{

                                             printf("Tong cac phan tu tren cung mot cot la: \n");

                                             int i,j;

                                             int s;

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

                                             {

                                                s=0;

                                                for(j=0;j<m;j++)

                                                s+=a[j][i];

                                                printf(" %d\t",s);

                                             }

}

void XuatMangHaiChieu(int a[max][max],int m,int n)

{

                                                int i,j;

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

                                             {

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

                                                {

                                                            printf("a[%d][%d] = %d\t",i,j,a[i][j]);

                                                }

                                                printf("\n");

                                             }

}

int main()

{

                                             int n,m;

                                             int a[m][n];

                                            

                                             printf("Nhap so dong N: ");

                                             scanf("%d",&n);

 

                                             printf("Nhap so cot M: ");

                                             scanf("%d",&m);

                                            

                                             NhapMangHaiChieuA(a,m,n);

 

                                             XuatMangHaiChieu(a,m,n);

                                             TinhTongCot(a,m,n);

}

Bài 36. Viết hàm(chương trình) tìm vị trí phần tử lớn nhất trong ma trận các số nguyên.

Code mẫu

#include<stdio.h>

void NhapMangHaiChieuA(int a[100][100],int m,int n)

{

                                             int i,j;

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

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

                                                {

                                                            printf("a[%d][%d] = ",i,j);

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

                                                }

}

int Max(int a[100][100],int m,int n)

{

                                             int i,j;

                                             int          max=a[0][0];

                                             int          maxi=0;

                                             int          maxj=0;

                                            

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

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

                                                            if(a[i][j]>max)

                                                            {

                                                                        max=a[i][j];

                                                                        maxi=i;

                                                                        maxj=j;

                                                            }

                                             printf("\n max = %d,Vi tri: a[%d][%d], Max hang = %d,max cot = %d.\n",max,maxi,maxj,maxi,maxj);

}

void XuatMangHaiChieu(int a[100][100],int m,int n)

{

                                                int i,j;

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

                                             {

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

                                                {

                                                            printf("a[%d][%d] = %d\t",i,j,a[i][j]);

                                                }

                                                printf("\n");

                                             }

}

int main()

{

                                             int n,m;

                                             int a[m][n];

                                            

                                             printf("Nhap so dong N: ");

                                             scanf("%d",&n);

 

                                             printf("Nhap so cot M: ");

                                             scanf("%d",&m);

                                            

                                             NhapMangHaiChieuA(a,m,n);

 

                                             XuatMangHaiChieu(a,m,n);

                                             Max(a,m,n);

}

Bài 37. Viết hàm(chương trình) tìm vị trí phần tử nhỏ nhất trong ma trận các số nguyên.

Code mẫu

#include<stdio.h>

void NhapMangHaiChieuA(int a[100][100],int m,int n)

{

                                             int i,j;

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

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

                                                {

                                                            printf("a[%d][%d] = ",i,j);

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

                                                }

}

int Min(int a[100][100],int m,int n)

{

                                             int i,j;

                                             int          min=a[0][0];

                                             int          mini=0;

                                             int          minj=0;

                                            

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

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

                                                            if(a[i][j]<min)

                                                            {

                                                                        min=a[i][j];

                                                                        mini=i;

                                                                        minj=j;

                                                            }

                                             printf("\n min = %d,Vi tri: a[%d][%d], Min hang = %d,min cot = %d.\n",min,mini,minj,mini,minj);

}

void XuatMangHaiChieu(int a[100][100],int m,int n)

{

                                                int i,j;

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

                                             {

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

                                                {

                                                            printf("a[%d][%d] = %d\t",i,j,a[i][j]);

                                                }

                                                printf("\n");

                                             }

}

int main()

{

                                             int n,m;

                                             int a[m][n];

                                            

                                             printf("Nhap so dong N: ");

                                             scanf("%d",&n);

 

                                             printf("Nhap so cot M: ");

                                             scanf("%d",&m);

                                            

                                             NhapMangHaiChieuA(a,m,n);

 

                                             XuatMangHaiChieu(a,m,n);

                                             TinhTongCot(a,m,n);

                                             Min(a,m,n);

}

Bài 38. Viết hàm(chương trình) đếm các giá trị âm, dương trong ma trận các số thực.

Code mẫu

#include<stdio.h>

#define max 100

void NhapMangHaiChieuA(float a[max][max],int m,int n)

{

                                             int i,j;

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

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

                                                {

                                                            printf("a[%d][%d] = ",i,j);

                                                            scanf("%f",&a[i][j]);

                                                }

}

int DemAmDuong(float a[max][max],int m,int n)

{

                                             int i,j;

                                             int duong=0;

                                             int am=0;

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

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

                                                {

                                                            if(a[i][j]>0)

                                                            duong++;

                                                            else

                                                            am++;

                                                }          

                                             printf("Co %d so duong,%d so am",duong,am);

}

int main()

{

                                             int n,m;

                                             float a[m][n];

                                            

                                             printf("Nhap so dong N: ");

                                             scanf("%d",&n);

 

                                             printf("Nhap so cot M: ");

                                             scanf("%d",&m);

                                            

                                             NhapMangHaiChieuA(a,m,n);

 

                                             DemAmDuong(a,m,n);

}

Bài 39. Viết hàm(chương trình) đếm số lần xuất hiện của phần tử x trong ma trận các số thực.

Code mẫu

#include<stdio.h>

#define max 100

void NhapMangHaiChieuA(float a[max][max],int m,int n)

{

                                             int i,j;

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

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

                                                {

                                                            printf("a[%d][%d] = ",i,j);

                                                            scanf("%f",&a[i][j]);

                                                }

}

void DemX(float a[max][max],int m,int n,int x)

{

                                             int i,j;

                                             int demx=0;

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

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

                                                {

                                                            if(x==a[i][j])

                                                            {

                                                            demx++;                                          

                                                            }

                                                }          

                                             printf("So %d xuat hien %d lan trong mang",x,demx);

}

int main()

{

                                             int n,m,x;

                                             float a[m][n];

                                            

                                             printf("Nhap so dong N: ");

                                             scanf("%d",&n);

 

                                             printf("Nhap so cot M: ");

                                             scanf("%d",&m);

                                            

                                             printf("Nhap so x: ");

                                             scanf("%d",&x);

                                            

                                             NhapMangHaiChieuA(a,m,n);

 

                                            

                                             DemX(a,m,n,x);

}

Bài tập tính Tổng, Hiệu,Tích của hai ma trận A và B và in ra các số nguyên tố, số hoàn hảo của hai ma trận A và B.

Code mẫu

#include<stdio.h>

#include<stdlib.h>

#include<math.h>

#define max 100

void SoHH(int n) {

            int i,tong = 0;

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

                        if(n%i == 0)

                                    tong = tong + i;

            }

            if(tong == n) {

                        printf("%d",n);

            }

}

void SoNT(int n) {

            int i,ok = 1;

            for(i = 2; i<=sqrt(n); i++) {

                        if(n%i == 0) {

                                    ok = 0;

                                    break;

                        }

            }

            if(ok == 1)

                        printf("%d",n);

}

void Nhap(int a[max][max],int m, int n) {

            printf("Nhap mang:\n");

            int i,j;

            for(i=0; i<m; i++) {

                        for(j=0; j<n; j++) {

                                    printf("[%d][%d] = ",i,j);

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

                        }

            }

}

void Xuat(int a[max][max],int m, int n) {

            int i,j;

            for(i=0; i<m; i++) {

                        for(j=0; j<n; j++) {

                                    printf("%d\t",a[i][j]);

                        }

                        printf("\n");

            }

}

void Tong(int a[max][max],int b[max][max],int c[max][max],int m,int n,int p,int q) {

            int i,j;

            if(m == p && n == q) {

                        for(i=0; i<m; i++) {

                                    for(j=0; j<n; j++) {

                                                c[i][j] = a[i][j] + b[i][j];

                                    }

                                    printf("\n");

                        }

            }

            Xuat(c,m,n);

}

void Hieu(int a[max][max],int b[max][max],int c[max][max],int m,int n,int p,int q) {

            int i,j;

            if(m == p && n == q) {

                        for(i=0; i<m; i++) {

                                    for(j=0; j<n; j++) {

                                                c[i][j] = a[i][j] - b[i][j];

                                    }

                                    printf("\n");

                        }

            }

            Xuat(c,m,n);

}

void Tich(int a[max][max],int b[max][max],int c[max][max],int m,int n,int p,int q) {

            int i,j,k;

            if(n == p) {

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

                                    for(k = 0; k<q ; k++) {

                                                c[i][k] = 0;

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

                                                            c[i][k] = c[i][k] + a[i][j]*b[j][k];

                                    }

            }

            Xuat(c,m,n);

}

void TimHH(int a[max][max],int m,int n) {

            int i,j;

            for(i=0; i<m; i++) {

                        for(j=0; j<n; j++) {

                                    SoHH(a[i][j]);

                                    printf("\t");

                        }

                        printf("\n");

            }

}

void TimNT(int a[max][max],int m,int n) {

            int i,j;

            for(i=0; i<m; i++) {

                        for(j=0; j<n; j++) {

                                    SoNT(a[i][j]);

                                    printf("\t");

                        }

                        printf("\n");

            }

}

int main() {

            int a[max][max],b[max][max],c[max][max],m,n,p,q;

            printf("Nhap so hang cua mang a: ");

            scanf("%d",&m);

            printf("Nhap so cot cua mang a: ");

            scanf("%d",&n);

            Nhap(a,m,n);

            printf("Mang dau tien co dang:\n");

            Xuat(a,m,n);

            printf("Nhap so hang cua mang b: ");

            scanf("%d",&p);

            printf("Nhap so cot cua mang b: ");

            scanf("%d",&q);

            Nhap(b,p,q);

            printf("Mang thu hai co dang:\n");

            Xuat(b,p,q);

            printf("Tong cua hai ma tran la:\n");

            Tong(a,b,c,m,n,p,q);

            printf("\nHieu cua hai ma tran la:\n");

            Hieu(a,b,c,m,n,p,q);

            printf("\nTich cua hai ma tran la:\n");

            Tich(a,b,c,m,n,p,q);

            printf("\n");

            printf("Cac so nguyen to cua mang a: ");

            TimNT(a,m,n);

            printf("Cac so hoan hao cua mang a: ");

            TimHH(a,m,n);

            printf("Cac so nguyen to cua mang b: ");

            TimNT(b,p,q);

            printf("Cac so hoan hao cua mang a: ");

            TimHH(b,p,q);

            return 0;

}
0 0 Phiếu bình chọn
Xếp hạng bài viết
BÀI VIẾT LIÊN QUAN
Đăng ký nhận thông báo
Thông báo email khi
guest
0 Bình luận
Không thể gửi email
Phản hồi nội tuyến

NÊN ĐỌC THÊM

Bạn muốn tìm kiếm gì?


0
Giáo sư! có thể ném gạch bên dưới nhé!x
()
x