You are not connected. Please login or register

Xem chủ đề cũ hơn Xem chủ đề mới hơn Go down  Thông điệp [Trang 1 trong tổng số 1 trang]

1 Bài Giải KTLT lần 2 on 2010-03-15, 21:40

ToongTeeng

avatar

Thành Viên
Tình hình là trình độ còn non nên chỉ giải được 2 câu thôi !!!.
Các bạn cứ vô xem và đánh giá cách tư duy nha ^^.

Bài 1:

Code:

#include <stdio.h>
#include <conio.h>

void Nhap(int *&a, int &n)
{
   printf("\n Nhap n: ");
   scanf("%d", &n);

   a = new int [n];

   for (int i=0; i<n; i++)
   {
      printf(" Nhap a[%d]: ", i);
      scanf("%d", a+i);
   }
}

void Xuat(int *a, int n)
{
   for (int i=0; i<n; i++)
      printf("%4d", *(a+i));
}

void SapTang(int *a, int n)
{
   for (int i=0; i<=n-2; i++)
   {
      for (int j=i+1; j<=n-1; j++)
      {
         if (a[j] < a[i])
         {
            int temp;
            temp = a[i];
            a[i] = a[j];
            a[j] = temp;
         }
      }
   }
}

int KiemTraSo3ChuSo(int k)
{
   int t = k;
   t/= 100;
   if (t>0 && t<10)
      return 1;

   return 0;

   /*
   vi du:
         t = 123;
         t/=100 ==> t = 1 (0 < t < 10) true

         t = 23;
         t/=100 ==> t = 0 (0 < t < 10) false

         t = 1233;
         t/=100 ==> t = 12 (0 < t < 10) false
   */
}

int KiemTraCapSoCong(int k)
{
   int t = k;
   int donvi = t%10;
   int hangchuc = (t/10)%10;
   int hangtram = t/100;

   if (hangtram < donvi)
   {
      if ((hangtram+donvi)/2 == hangchuc)
         return 1;      
   }
   return 0;
}

void KiemTra(int *a, int n)
{
   int flag = 0;

   for (int i=0; i<n; i++)
   {
      if (KiemTraSo3ChuSo(*(a+i)) == 1)
      {
         if (KiemTraCapSoCong(*(a+i)) == 1)
         {
            flag = 1;
            printf("%4d", *(a+i));
            return;
         }
      }
   }

   if (flag == 0)
      printf("\n Khong co so nao thoa yeu cau !");
}

void main()
{
   int *a;
   int n;
   Nhap(a,n);
   printf("\n Mang ban dau: ");
   Xuat(a,n);

   SapTang(a,n);
   
   printf("\n Phan tu thoa yeu cau bai toan la: ");   
   KiemTra(a,n);

   getch();
}


Bài 2:

Code:

#include <stdio.h>
#include <conio.h>

void Nhap(int **&a, int &m, int &n)
{
   printf("\n Nhap so dong: ");
   scanf("%d", &m);
   printf(" Nhap so cot: ");
   scanf("%d", &n);

   a = new int *[m];
   for (int k=0; k<m; k++)
   {
      a[k] = new int [n];
   }
   printf("\n");

   for (int i=0; i<m; i++)
   {
      for (int j=0; j<n; j++)
      {
         printf(" Nhap a[%d][%d]: ", i, j);
         scanf("%d", *(a+i)+j);
      }
      printf("\n");
   }
}

void Xuat(int **a, int m, int n)
{
   for (int i=0; i<m; i++)
   {
      for (int j=0; j<n; j++)
      {
         printf("%4d", *(*(a+i)+j));
      }
      printf("\n");
   }

}

void XoaPhanTuTrenMotDong(int **a, int m, int n, int dong, int k) // dong: la dong can xoa. k: la chi so cot can xoa tren dong
{
   for (int i=k; i<n-1; i++)
   {
      *(*(a+dong)+i) = *(*(a+dong)+i+1);
   }   
}

void XoaCot(int **a, int m, int &n, int k)
{
   for (int i=0; i<m; i++)
   {
      XoaPhanTuTrenMotDong(a,m,n,i,k); // xoa lan luot tung dong (theo bien i).
   }
   n--;
}

void main()
{
   int **a;
   int m, n;

   Nhap(a,m,n);
   printf("\n Ma tran ban dau: \n");
   Xuat(a,m,n);
   
   int k;
   printf("\n Nhap vi tri cot can xoa: ");
   scanf("%d", &k);
   
   XoaCot(a,m,n,k);
   printf("\n Ma tran sau khi xoa cot: \n");
   Xuat(a,m,n);

   for (int i=0; i<m; i++)
      delete []a[i];
   delete []a;

   getch();
}


Chúc cả nhà đều thi đậu Cười vui Cười vui Cười vui Buồn cười Buồn cười Buồn cười

Xem lý lịch thành viên

2 Re: Bài Giải KTLT lần 2 on 2010-03-15, 21:46

Hizhiz hjc.hjc học lại chắc cú Hizhiz

Xem lý lịch thành viên

3 Re: Bài Giải KTLT lần 2 on 2010-03-15, 21:49

MrSku

avatar

Administrator
[You must be registered and logged in to see this image.] [You must be registered and logged in to see this image.] [You must be registered and logged in to see this image.] Ôi hâm mộ anh Toong quá đi [You must be registered and logged in to see this image.] [You must be registered and logged in to see this image.]











CHỮ KÝ CỦA:MrSku

[You must be registered and logged in to see this image.]


Xem lý lịch thành viên http://08dba.7forum.net

4 Re: Bài Giải KTLT lần 2 on 2010-03-15, 21:59

nguyentuongvan

avatar

Thành Viên
....eo ơi..........kinh khủng thiệt....

Xem lý lịch thành viên

5 Re: Bài Giải KTLT lần 2 on 2010-03-15, 23:03

Tien.BiThu08DBA

avatar

Thành Viên
Toàn ui!! post đề lên đi, thank nha!!

Xem lý lịch thành viên

6 Re: Bài Giải KTLT lần 2 on 2010-03-15, 23:27

ToongTeeng

avatar

Thành Viên
Bài 1: Tìm số nhỏ nhất trong mảng các số nguyên thỏa: là số có 3 chữ số và lập thành 1 cấp số cộng.

ví dụ: 234, 47, 59, 123, 647, 248, 357 --> 123.


Bài 2: Xóa một cột trong ma trận các số nguyên.

ví dụ:
1 2 3
4 5 6
7 8 9
xóa cột 1, sẽ thành:
1 3
4 6
7 9

Xem lý lịch thành viên

7 Re: Bài Giải KTLT lần 2 on 2010-03-16, 08:16

boy_saudoi

avatar

Thành Viên
Vui Thank
Để text lại bài 2 tìm cách giải khác

Xem lý lịch thành viên

8 Re: Bài Giải KTLT lần 2 on 2010-03-16, 19:46

Kem_Skillno1_group

avatar

Administrator
pro quá còn gì..hihi.đề thi lại mà thầy hình như muốn lớp mình tiu hay sao á..hic

Xem lý lịch thành viên

9 Re: Bài Giải KTLT lần 2 on 2010-03-16, 21:38

w17

avatar

Thành Viên
o^i  tho^i  rui` the^' la` die he^t' ca~ 2 bai` Hizhiz

Xem lý lịch thành viên http://lagiclub.com

Sponsored content


Xem chủ đề cũ hơn Xem chủ đề mới hơn Về Đầu Trang  Thông điệp [Trang 1 trong tổng số 1 trang]

Permissions in this forum:
Bạn không có quyền trả lời bài viết