Đâ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
:dead:
Trả lờiXóa:onion20:
Trả lờiXóa