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();
}

By alaza7

Leave a Reply

Your email address will not be published. Required fields are marked *