background img

Bài Viết Mới

Chèn - Thêm - Xóa Trong Mảng 1 Chiều [C/C++ Basic]

Giới thiệu về C/C++


Đây là bài tập rất cơ bản khi các bạn học C/C++

- Vì sao tôi dùng chung từ khóa  "C/C++"  ? C++ được phát triển trên C, hầu hết các cú pháp  vẫn được sử dụng trong C++.

- Trong ví dụ dưới đây, tôi dùng VS Studio -> C++ Console

- Nếu bạn muốn code chạy được trên Bornland C hay Code Block . . . chỉ cần loại bỏ 1 vài từ khóa trong code chỉ dành cho C++ là được

 

Ví dụ này thực hiện việc:

- Nhập - Xuất mảng

 

- Chèn một phần tử vào vị trí bất kỳ

- Thêm mới . . .

- Xóa . . .

- Sắp xếp Tăng - Giảm
 
#include <stdio.h>
#include <conio.h>
#include <iostream>
#include <windows.h>
#define MAX 5 // defines the value of an element.

using namespace std; //Dung cho Cout / Cin

void themPhanTu(int a[], int &n)
{
do{
printf("\n Nhap so phan tu cua mang: ");
scanf("%d",&n);
if(n < 0 || n > 10)
printf("\n Tong so phan tu khong hop le !!!");
}
while(n<0 || n >10);
for(int i = 0; i < n; i ++)
{
printf("\n a[%d] :",i);
scanf("%d",&a[i]);
}
}
/* Print the array */
void xuatMang(int a[], int n)
{
for(int i = 0; i < n; i ++)
{
printf("\t%d ",a[i]);
}
}

/* Chen 1 phan tu vao vi tri bat ky */
void chenPhanTu(int a[], int n, int &ptsins , int &elmins )
{
printf("\n Enter the position to insert :");
scanf("%d",&ptsins);
printf("\n Enter the element to insert :");
scanf("%d",&elmins);
for(int i = 0; i < n; i ++)
{
if(i == ptsins && ptsins >= 0 && ptsins < n)
a[i]=elmins;
}

}

/* Them moi 1 phan tu vao vi tri bat ky*/
void themPhanTu(int a[],int &n,int &ptsadd,int &elmadd)
{
n++; //Tang len 1 vi tri
do{
printf("\n Enter the position to add :");
scanf("%d",&ptsadd);
if(ptsadd <0 || ptsadd >= n);
}
while(ptsadd <0 || ptsadd >= n);
printf("\n Enter the element to add :");
scanf("%d",&elmadd);
int i;
if(ptsadd < n)
{
for( i=n-1; i > ptsadd;i--)
{
a[i]=a[i-1];

}
for(i =0; i<n; i++)
{
if(i == ptsadd && ptsadd >= 0 && ptsadd < n)
a[i]=elmadd;
//break;
}
xuatMang(a,n);
}
else if(ptsadd > n-1&& ptsadd<n+1)
{
a[n-1]= elmadd;
xuatMang(a,n);

}
}
void xoaPhanTu(int a[], int &n)
{
n--; // Giam di 1 vi tri.
int vt;
do{
printf("\nNhap vi tri muon xoa: ");
scanf("%d",&vt);
if(vt <0 || vt >= n);
}
while(vt <0 || vt > n);

for(int i=0; i < n; i++)
{
if(i==vt)
{
a[i] = NULL;
}
if(vt ==0)
{
a[i] = NULL;
break;
}
if(vt == n -1)
{
a[n-1] = NULL;
break;
}
}
for(int i = vt; i < n; i ++)
{
a[i]=a[i+1];
}
xuatMang(a,n);
}
void sortArray(int a[], int n, int mode = 0)
{
for(int i = 0; i < n-1; i ++)
for(int j=i+1;j<n;j++)
if(a[i]>a[j] == mode)
{
int temp = a[i];
a[i]=a[j];
a[j] = temp;
}
}
/*Menu*/
int menu(int a[], int n)
{
//clrscr();
system("cls");
printf("Current array is: \n");
xuatMang(a,n);
printf("\n");
//textcolor(CYAN);
printf("-------------------------------------------------------\n");
printf(" 1.Chen 1 phan tu vao vi tri bat ky \n");
printf(" 2.Them phan tu tai vi tri bat ky\n");
printf(" 3.Xoa 1 phan tu tai vi tri bat ky\n");
printf(" 4.Sap xep mang tang dan\n");
printf(" 5.Sap xep mang giam dan\n");
printf(" ------------------------------------------\n");
printf(" 9.Information\n");
printf(" 0.Exit\n\n");
printf(" Chon chuc nang so: ");
int choice;
scanf("%d",&choice);
return choice;
}
void main()
{
//clrscr();
system("cls");
int choice;
int a[MAX];
int n;
int ptsins;
int elmins;
int elmadd;
int ptsadd;
int vt;
themPhanTu(a,n);
while(1)
{
//textcolor(GREEN); //Color: CYAN, RED, BLUE, MAGENTA v.v...
choice=menu(a,n);
switch (choice)
{
case 1: chenPhanTu(a,n,ptsins,elmins);xuatMang(a,n); break;
case 2: themPhanTu(a,n,ptsadd, elmadd);break;
case 3: xoaPhanTu(a,n) ;break;
case 4: sortArray(a,n,1);xuatMang(a,n);break; // 1 is ascending
case 5: sortArray(a,n,0);xuatMang(a,n);break; //0 is descending
}
if(choice==0)break;
getch();
}
}

 
Nguồn: Tự Học IT Online - http://tuhocit.net

2 nhận xét: Leave Your Comments

Xem Nhiều