1 Bài Giải KTLT lần 2 2010-03-15, 21:40
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:
Bài 2:
Chúc cả nhà đều thi đậu
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