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();
}
ở cuối trang, hay nút màu XANH
ở gần giữa trang, coi chừng nhầm nút