Dưới đây là các bài tập mảng 1 chiều trong C phổ biến mà các bạn đang cần tìm, bài tập có kèm theo lời giải
Bài tập nhập, xuất mảng 1 chiều
Nhập vào 1 dãy số nguyên. Hiển thị dãy số đó ra màn hình.
#include<stdio.h> #include<conio.h> main() { int a[50]; int i,n; printf("Nhap so phan tu mang: "); scanf("%d",&n); for(i=0;i<n;i++) { scanf("%d",&a[i]); } printf("\nMang vua nhap la:"); for(i=0;i<n;i++) { printf("%5d",a[i]); } getch(); }
Bài tập tính tổng các phần tử trong mảng
#include<stdio.h> int main() { int a[100];// khai bao mang so nguyen co 100 o nho int n;//khai bao so nguyen n la so phan tu cua mang //Nhap du lieu cua n do{ printf("Nhap so phan tu cua mang:"); scanf("%d", &n); if(n<1 || n>100) { printf("Nhap lai:"); } }while(n<1 || n>100);//dieu kien neu n<1 hoac n>100 yeu cau nhap lai // nhap cac phan tu vao mang for(int i=0; i<n ; i++)//vong lap for duyet phan tu trong mang tu 0 den n-1 { //nhap du lieu vao mang printf("Nhap a[%d] = ",i); scanf("%d", &a[i]); } // tinh tong cac phan tu int Tong = 0; //khai bao bien Tong for(int i=0; i<n ; i++) { Tong += a[i];// hoac Tong = Tong + a[i] (tinh tong cua cac phan tu trong mang) } printf("\nTong cac phan tu trong mang la: %d", Tong); // xuat mang for(int i=0; i<n ; i++)//vong lap for duyet phan tu trong mang 0 den n-1 { //hien thi cac phan tu trong mang printf("%d \t", a[i]); } }
Tính tổng bình phương các phần tử trong mảng
#include "conio.h" #include "stdio.h" #define max 100 //nhap mang void NhapMang(int A[], int n) { for(int i = 0; i<n; i++) { printf("phan tu %d = ",i); scanf("%d",&A[i]); } } //xuat mang void XuatMang(int A[], int n) { for(int i = 0; i<n; i++) printf("%d\t",A[i]); } int SumQ(int a[],int n) { int temp = 0; for(int i=0;i<n;i++) temp+=a[i]*a[i]; return temp; } //chuong trinh chinh void main(){ int B[max], n; printf("Nhap n = "); scanf("%d",&n); NhapMang(B,n); printf("Mang vua nhap:\n"); XuatMang(B,n); printf("\nTong binh phuong = %d",SumQ(B,n)); getch(); }
Bài tập in ra các số nguyên tố trong mảng
#include<stdio.h> #include<conio.h> main() { int a[50]; int i,n,j,kt; printf("Nhap so luong phan tu:"); scanf("%d",&n); for(i=0;i<n;i++) { scanf("%d",&a[i]); } printf("\nCac so nguyen to co trong mang va vi tri cac so do trong mang la:"); for(i=0;i<n;i++) { kt=0; for(j=2;j<=a[i]/2;j++) { if(a[i]%j==0) kt=1; } if(kt==0) printf("\nso nguyen to %d vi tri %d trong mang ", a[i], i ); } getch(); }
Tìm số lớn nhất trong mảng vừa nhập
#include <stdio.h> #include<conio.h> const int MAX = 100000; int arr[MAX]; int main(){ int n; printf("\nNhap so luong phan tu n = "); scanf("%d", &n); // Nhap mang for(int i = 0;i < n; ++i){ printf("\nNhap a[%d] = ", i); scanf("%d", &arr[i]); } // Tim so lon nhat trong mang vua nhap int maxNum = arr[0]; for(int i = 1;i < n;++i){ if(arr[i] > maxNum) maxNum = arr[i]; } printf("\nPhan tu lon nhat: %d", maxNum); getch(); }
Tìm và in vị trí số nhỏ nhất trong mảng
#include <stdio.h> #include<conio.h> const int MAX = 100000; int arr[MAX]; int main(){ int n; printf("\nNhap so luong phan tu n = "); scanf("%d", &n); // Nhap mang for(int i = 0;i < n; ++i){ printf("\nNhap a[%d] = ", i); scanf("%d", &arr[i]); } // Tim gia tri nho nhat int minNum = arr[0]; for(int i = 1;i < n;++i){ if(arr[i] < minNum) minNum = arr[i]; } printf("\nPhan tu nho nhat: %d", minNum); // In ra vi tri co gia tri nho nhat printf("\nVi tri co gia tri nho nhat la: "); for(int i = 0;i < n;++i){ if(arr[i] == minNum) printf("%d ", i+1); } getch(); }
Tính trung bình cộng các số lẻ ở vị trí chẵn
#include <stdio.h> #include<conio.h> const int MAX = 100000; int arr[MAX]; int main(){ int n; printf("\nNhap so luong phan tu n = "); scanf("%d", &n); // Nhap mang for(int i = 0;i < n; ++i){ printf("\nNhap a[%d] = ", i); scanf("%d", &arr[i]); } int sum = 0; int count = 0; for(int i = 1; i < n; i+=2){ if(arr[i] % 2 == 1){ ++count; sum += arr[i]; } } printf("\nTrung binh cong = %f", (float)sum/count); getch(); }
Đếm các số chính phương có trong mảng
#include <stdio.h> #include<conio.h> #include<math.h> const int MAX = 100000; int arr[MAX]; int main(){ int n; printf("\nNhap so luong phan tu n = "); scanf("%d", &n); // Nhap mang for(int i = 0;i < n; ++i){ printf("\nNhap a[%d] = ", i); scanf("%d", &arr[i]); } // Dem cac so chinh phuong co trong mang // So chinh phuong la so co can la so nguyen nhu: 1, 4, 9,... int scp = 0; float rs; for(int i = 0;i < n;++i){ rs = sqrt(arr[i]); if(rs == (int)rs) ++scp; } printf("\nMang co %d so chinh phuong!", scp); getch(); }
Hiện thị các số nguyên tố có trong mảng lên màn hình
#include <stdio.h> #include<conio.h> const int MAX = 100000; int arr[MAX]; int main(){ int n; printf("\nNhap so luong phan tu n = "); scanf("%d", &n); // Nhap mang for(int i = 0;i < n; ++i){ printf("\nNhap a[%d] = ", i); scanf("%d", &arr[i]); } /*------------------------------------*/ // Hien thi cac so nguyen to co trong mang // So nguyen to la so chi co 2 uoc duy nhat la 1 va chinh no. // So nguyen to nho nhat la so 2 printf("\nCac so nguyen to co trong mang la: "); bool snt; for(int i = 0;i < n;i++){ // Kiem tra a[i] co phai so nguyen to? // gia su no la so nguyen to // Neu no chia het cho so bat ky trong [2, a[i]] -> khong phai so nguyen to snt = true; for(int j = 2;j < arr[i]; ++j){ if(arr[i] % j == 0) snt = false; } if(arr[i] >= 2 && snt == true) printf("%d ", arr[i]); } getch(); }
Thay thế các phần tử âm có trong mảng bằng giá trị 0
#include <stdio.h> #include<conio.h> const int MAX = 100000; int arr[MAX]; int main(){ int n; printf("\nNhap so luong phan tu n = "); scanf("%d", &n); // Nhap mang for(int i = 0;i < n; ++i){ printf("\nNhap a[%d] = ", i); scanf("%d", &arr[i]); } // Thay the cac phan tu am trong mang = 0. for(int i = 0;i < n;++i){ if(arr[i] < 0) arr[i] = 0; } printf("\nMang sau khi thay the la: "); for(int i = 0;i < n;++i){ printf("%d ", arr[i]); } getch(); }
Xóa các phần tử âm có trong mảng
#include <stdio.h> #include<conio.h> const int MAX = 100000; int arr[MAX]; int main(){ int n; printf("\nNhap so luong phan tu n = "); scanf("%d", &n); // Nhap mang for(int i = 0;i < n; ++i){ printf("\nNhap a[%d] = ", i); scanf("%d", &arr[i]); } // Xoa cac phan tu am co trong mang for(int i = 0;i < n;++i){ if(arr[i] < 0){ for(int j = i; j < n-1;j++){ arr[j] = arr[j+1]; } --n; } } printf("\nMang sau khi xoa phan tu am la: "); for(int i = 0;i < n;++i){ printf("%d ", arr[i]); } getch(); }
Sắp xếp mảng đã nhập theo thứ tự tăng dần
#include <stdio.h> #include<conio.h> const int MAX = 100000; int arr[MAX]; int main(){ int n; printf("\nNhap so luong phan tu n = "); scanf("%d", &n); // Nhap mang for(int i = 0;i < n; ++i){ printf("\nNhap a[%d] = ", i); scanf("%d", &arr[i]); } //Sap xep mang da nhap theo chieu tang dan int tg; for(int i = 0;i < n-1;++i){ for(int j = i+1; j < n;++j){ if(arr[i] > arr[j]){ // Hoan vi tg = arr[i]; arr[i] = arr[j]; arr[j] = tg; } } } printf("\nMang sau khi sap xep tang dan la: "); for(int i = 0;i < n;++i){ printf("%d ", arr[i]); } getch(); }
Bài tập sắp xếp mảng, tìm trung bình cộng
#include<stdio.h> #include<conio.h> main() { int a[50]; int i,n,tg,max,j,s=0; printf("nhap vao so phan tu: "); scanf("%d",&n); for(i=0;i<n;i++) { scanf("%d", &a[i]); } //sap xep day so theo thu tu tang dan for(i=0;i<n-1;i++) for(j=i+1; j<n; j++) { if(a[i]>a[j]) { tg=a[i]; a[i]=a[j]; a[j]=tg; } } printf("\nday so sau khi sap xep la:"); for(i=0;i<n;i++) { printf("%6d",a[i]); } //Tinh tong va trung binh cong cac so trong day for(i=0;i<n;i++) { s=s+a[i]; } printf("\nTong cac so trong day la: %d",s); printf("\nTrung binh cong cac so trong day la: %f", (float)s/n); getch(); }