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.

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]

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

ToongTeeng

ToongTeeng

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

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

Cachua_Skillno1_group

Cachua_Skillno1_group

Thành Viên
Hizhiz hjc.hjc học lại chắc cú Hizhiz

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

MrSku

MrSku

Administrator
[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.]

https://08dba.forumvi.com

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

nguyentuongvan

nguyentuongvan

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

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

Tien.BiThu08DBA

Tien.BiThu08DBA

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

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

ToongTeeng

ToongTeeng

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

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

boy_saudoi

boy_saudoi

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

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

Kem_Skillno1_group

Kem_Skillno1_group

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

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

w17

w17

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

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