C3TH4
Bạn có muốn phản ứng với tin nhắn này? Vui lòng đăng ký diễn đàn trong một vài cú nhấp chuột hoặc đăng nhập để tiếp tục.

C3TH4


 
Trang ChínhPortalLatest imagesTìm kiếmĐăng kýĐăng Nhập

 

 XỬ LÝ MẢNG 1 CHIỀU

Go down 
2 posters
Tác giảThông điệp
Admins
Thái Thượng Hoàng
Thái Thượng Hoàng
Admins


Tổng số bài gửi : 336
Age : 35
Đến từ : cát bụi
Registration date : 03/04/2008

XỬ LÝ MẢNG 1 CHIỀU Empty
Bài gửiTiêu đề: XỬ LÝ MẢNG 1 CHIỀU   XỬ LÝ MẢNG 1 CHIỀU Icon_minitimeSun May 18, 2008 10:05 pm

Code:
/*
   Chuong trinh xu ly mang 1 chieu
   - Nhap mang
   - Xuat mang
   - Them 1 PTu vao mang
   - Xoa 1 phan tu trong mang
   - tim kiem
   - Sap Xep
   - So Nguyen To
*/
#include<conio.h>
#include<stdio.h>
#include<math.h>
#define max 20  //Dinh Nghia Mang Chua Toi Da 20 Phan Tu
//===========================================
//Khai Bao cac Prototype
void NhapDS (int a[], int n);
void XuatDS (int a[], int n);
void Them1PTu(int a[], int *n, int vt, int x);
void Xoa1PTu(int a[], int *n, int vt);
int  TimKiem (int a[], int n, int x);
void SapXep (int a[], int n);
void InSNTo (int a[], int n);
int  KTSNTo (int x);
int  KTTinhDX (int a[], int n); //kiem tra tinh doi xung
int  XetTinhTangGiam (int a[], int n);


//..........
void main()
{
   int a[max], n, kt, vt;
   int x;
   char ch;
   clrscr();
   do
   {
      clrscr();
      printf("\n\tCHUONG TRINH XU LY MANG 1 CHIEU !");
      printf("\n\tNhap So PTu Trong Mang :  ");
      scanf ("%d", &n);
      printf("\n\tNhap Noi Dung Cac Phan Tu Trong Mang !\n");
      NhapDS (a, n);
      //==================================
      printf("\n\tMang Nhap Vao La !\n\t");
      XuatDS (a, n);
      getch();
      //==================================
      //Tim Kiem
      printf("\n\tTim Kiem 1 PTu Trong DS !");
      printf("\n\tNhap NDung PTu can Tim : ");
      scanf("%d", &x);
      kt = TimKiem (a, n, x);
      if (kt == -1)
         printf("\n\tKhong TThay PTu Co NDung %d Trong DS !", x);
      else
         printf("\n\tTThay PTu Co NDung %d Tai Vi Tri %d Trong DS !", x, kt);
      getch();

      //==================================
      //Them 1PTu vao DS
      clrscr();
      printf("\n\tThem 1 PTu vao DS !");
      printf("\n\tMang Truoc Khi Them !\n\t");
      XuatDS (a, n);
      printf("\n\tNhap VTri Can Them (0 => %d) : ", n);
      scanf ("%d", &vt);
      if (vt < 0 || vt > n)
         printf("\n\tVi Tri Them Khong Hop Le !");
      else
      {
         printf("\n\tNhap NDung can Them X :  ");
         scanf("%d", &x);
         Them1PTu (a, &n, vt, x);
         printf("\n\tMang Sau Khi Them !\n\t");
         XuatDS (a, n);
      }
      getch();
      //==================================
      //Xoa 1PTu Trong DS
      clrscr();
      printf("\n\tXoa 1 PTu Trong DS !");
      printf("\n\tMang Truoc Khi Xoa !\n\t");
      XuatDS (a, n);
      printf("\n\tNhap VTri Can Xoa (0 -> %d) : ", n - 1);
      scanf ("%d", &vt);
      if (vt < 0 || vt >= n)
         printf("\n\tVi Tri Xoa Khong Hop Le !");
      else
      {
         Xoa1PTu (a, &n, vt);
         printf("\n\tMang Sau Khi Xoa !\n\t");
         XuatDS (a, n);
      }
      getch();

      //==================================
      //In Cac PTu Trong Mang La SNT
      clrscr();
      printf("\n\tIn Cac PTu Trong Mang La SNT !");
      printf("\n\tMang Hien Tai La !\n\t");
      XuatDS (a, n);
      printf("\n\tCac Phan Tu La SNTo !\n\t");
      InSNTo (a, n);
      getch();
      //==================================
      //Kiem Tra Tinh DX Cua mang
      clrscr();
      printf("\n\tKiem Tra Tinh Doi Xung Cua Mang !");
      printf("\n\tmang Hien tai La !\n\t");
      XuatDS (a, n);
      kt = KTTinhDX (a,  n);
      if (kt == 0)
         printf("\n\tmang Tren Khong Doi Xung !");
      else
         printf("\n\tmang Tren Doi Xung !");
      getch();
      //==================================
      //Xet Tinh tang Giam Cua mang
      clrscr();
      printf("\n\tXet Tinh Tang Giam Cua Mang !");
      printf("\n\tMang Hien tai La !\n\t");
      XuatDS (a, n);
      kt =  XetTinhTangGiam (a,  n);
      if (kt == 0)
         printf("\n\tMang Tren Khong Tang Khong Giam !");
      if (kt == 1)
         printf("\n\tMang Tren la Mang Tang !");
      if (kt == 2)
         printf("\n\tMang Tren la Mang Giam !");
      getch();
      //==================================
      //SapXep
      printf("\n\tSap Xep Mang Theo Thu Tu Tang Dan !\n\t");
      printf("\n\tMang Truoc Khi Sap Xep !\n\t");
      XuatDS (a, n);
      SapXep (a, n);
      printf("\n\tMang Sau Khi Sap Xep !\n\t");
      XuatDS (a, n);
      getch();
      printf("\n\tBan Co Tiep Tuc Khong (C/K) ?");
      ch = getch();
   }while ((ch == 'c') || (ch == 'C'));
   getch();
}
//============================================
//Cai Dat Cac Ham
//==================================
void NhapDS (int a[], int n)
{
   int i;
   for (i = 0; i < n; i++)
   {
      printf("\n\tNhap PTu A[%d] :  ",i);
      scanf("%d", &a[i]);
   }
}
//==================================
void XuatDS (int a[], int n)
{
   int i;
   for (i = 0; i < n; i++)
      printf("%7d",a[i]);
}
//==================================
void Them1PTu(int a[], int *n, int vt, int x)
{
    int i;
   if (*n == max)
      printf("\n\tMang Day Khong Them Duoc !");
   else
      if ((vt < 0) || (vt > *n))
         printf("\n\tVi Tri Them Khong Hop Le !");
      else
      {
         //Doi cac PTu Tu Cuoi Den VT Them Le 1 VT
         for (i = *n; i> vt; i--)
            a[i] = a[i-1];
         a[vt] = x;
         *n = *n + 1;
      }
}
//==================================
void Xoa1PTu(int a[], int *n, int vt)
{
   int i;
   if (*n == 0)
      printf("\n\tMang Rong Khong Xoa Duoc !");
   else
      if ((vt < 0) || (vt >= *n))
         printf("\n\tVi Tri Xoa Khong Hop Le !");
      else
      {
         //Doi cac PTu Tu VT Xoa Den Cuoi Xuong 1 VTri
         for (i = vt + 1; i < *n; i++)
            a[i - 1] = a[i];
         *n = *n - 1;
      }
}
//==================================
int  TimKiem (int a[], int n, int x)
{
   int i;
   i = 0;
   while ((i < n) && (a[i] != x))
      i++;
   if (i < n)
      return i; //TThay
   return -1; //Khong TThay
}
//==================================
void SapXep (int a[], int n)
{
   int i, j, tam;
   for (i = 0; i < n-1; i++)
      for (j = i+ 1; j < n; j++)
         if (a[i] > a[j])
         {
            tam = a[i];
            a[i] = a[j];
            a[j] = tam;
         }
}
//==================================
/*In Cac Phan Tu La SNT : SNT La So Chi Chia Het Cho 1 va Chinh No
Cach 2
-  Tac vu Kien Tra So N Co Phai la SNT Khong : Cach Lam Viec
+  Ta Lan Luoc Chia So No Cho Cac So (L) Tu 2 -> Can Bac hai Cua N
   ..  neu truong hop so sanh bang xay ra thi so dang xet la SNT
   ..  nguoc lai so dang xet khong phai la SNT
*/
int  KTSNTo (int x)
{
   int k, l;
   if (x >= 2)
   {
      k = (int) sqrt (x);
      l = 2;
      while ((l <= k) && (x % l != 0))
         l++;
      if (l > k)
         return 1;//la SNT
      return 0;// Khong La SNTo
   }
   return 0;// Khong La SNTo
}
//==================================
//In Cac Phan Tu La So Nguyen To
void InSNTo (int a[], int n)
{
   int i, kt;
   for (i = 0; i < n; i++)
   {
      kt = KTSNTo (a[i]);
      if (kt == 1) //a[i] la SNT
         printf("%7d", a[i]);
   }
}

//Hoac ta Co The Viet Ham In SNTo Nhu Sau
void InSNTo1 (int a[], int n)
{
   int i, l, k;
   for (i = 0; i < n; i++)
      if (a[i] >= 2)
      {
         k = (int) sqrt (a[i]);
         l = 2;
         while ((l <= k) && (a[i] % l != 0))
            l++;
         if (l > k)
            printf("%7d", a[i]);  //a[i] la SNTo
      }
}

//==================================
int  KTTinhDX (int a[], int n)
{
   int i;
   for (i = 0; i < n/2; i++)
      if (a[i] != a[n - i - 1])
         return 0;  //Khong DX
   return 1; //Doi Xung
}
//==================================
int  XetTinhTangGiam (int a[], int n)
{
   int i;
   char kt = 'F', kt1 = 'F';
   for (i = 0; i < n - 1; i++)
      if (a[i] > a[i + 1])
         kt = 'T';
      else
         if (a[i] != a[i + 1])
            kt1 = 'T';
   if (((kt == 'T') && (kt1 == 'T')) || ((kt == 'F') && (kt1 == 'F')))
      return 0;  //mang Khong Tang Khong Giam
   if ((kt = 'T') && (kt1 == 'F'))
      return 1;  //mang giam
   if ((kt = 'F') && (kt1 == 'T'))
      return 2;  //mang tang
}



Được sửa bởi Admins ngày Mon May 19, 2008 7:19 pm; sửa lần 1.
Về Đầu Trang Go down
https://c3th4.forum-viet.com
huynhvohoangphu
Tể Tướng
Tể Tướng



Tổng số bài gửi : 4
Registration date : 11/04/2008

XỬ LÝ MẢNG 1 CHIỀU Empty
Bài gửiTiêu đề: Re: XỬ LÝ MẢNG 1 CHIỀU   XỬ LÝ MẢNG 1 CHIỀU Icon_minitimeMon May 19, 2008 7:26 am

bai nay thay vay ma tum lum wa ha Razz
Về Đầu Trang Go down
 
XỬ LÝ MẢNG 1 CHIỀU
Về Đầu Trang 
Trang 1 trong tổng số 1 trang
 Similar topics
-
» 10 cách để vượt qua một cuộc chia tay
» Tâm Sự 1 Chàng Trai Sau khi Chia Tay
» Giả vờ mình chia tay nhau , anh nhé ....... !
» Trang web chia sẻ kinh nghiệm để thành công BaiHocThanhCong.com

Permissions in this forum:Bạn không có quyền trả lời bài viết
C3TH4 :: Box Học Tập :: Kỹ Thuật Lập Trình-
Chuyển đến