1.
Tính tổng S(n)= 1+ ½ + 1/3+1/4+…+1/n
}
#include<stdio.h>
#include<conio.h>
2.
Tìm số đảo ngược của số nguyên dương n. Vd nhập
123456 thì in ra 654321.
int main()
#include<stdio.h>
{
int i, n;
#include<conio.h>
float S;
int main()
S = 0; i = 1;
{
do
int n;
{
int SoNghichDao = 0;
printf("\nNhap n: ");
do
scanf("%d", &n);
{
printf("\nNhap n: ");
if(n < 1)
scanf("%d", &n);
{
}while(n < 0 && printf("\nLoi: (n >= 0)"));
printf("\nN phai > = bang 1. Xin nhap lai !");
}
printf("\nSo dao nguoc cua %d la: ", n);
}while(n < 1);
do
{ printf("%d", n % 10);
while(i <= n)
}while( n /= 10);
{
getch();
S = S + 1.0 / i; // ph?i nh? là 1.0 / i
return 0;
i++;
}
}
3.
Viết chương trình in ra tam giác cân có độ cao h.
printf("i = %d", i);
#include<stdio.h>
printf("\nS = %f", S);
#include<conio.h>
printf("\nTong 1 + 1/2 + ... + 1/%d la %.2f: ",n, S);
int main()
getch();
{ int i, j, n;
return 0;
printf("\nNhap n: ");
1
scanf("%d", &n);
printf((j <= i) ? "%c" : " ",
234);
}
// Câu a: tam giac can dac nam giua mang hinh
printf("\n\n");
for(i = 1; i <= n; ++i)
}
{
// Câu d: tam giac vuong can rong
for(j = 1; j <= n + i - 1; ++j)
for(i = 1; i <= n; ++i)
{
{
printf((j < n - i + 1) ? " " :
"%c", 234);
for(j = 1; j <= n; ++j)
}
{
putchar('\n');
printf((j == i || j == 1 || i ==
n) ? "*" : " ");
}
}
// Câu b: tam giac can rong nam giua mang hinh
printf("\n");
for(i = 1; i <= n; ++i)
{
getch();
for(j = 1; j <= n + i - 1; ++j)
return 0;
{
}
printf((j == n - i + 1 || j == n
+ i - 1 || i == n) ? "%c" : " ", 234);
}
4.
Viết hàm tìm giá trị lớn nhất trong mảng 1 chiều các
số thực
putchar('\n');
}
#include<stdio.h>
printf("\n");
#include<conio.h>
// Câu c: tam giac vuong can dac
#define MAX 100
for(i = 1; i <= n; ++i)
void nhapmang_1Chieu (float a[], int &n)
{
{
for(j = 1; j <= n; ++j)
do
{
{
2
printf("\nNhap so phan tu: ");
{
scanf("%d", &n);
for(int i = 0; i < n; i++)
if(n <= 0 || n > MAX)
{
{
printf("%8.3f", a[i]);
printf("\nSo phan tu khong
hop le. Xin kiem tra lai !");
}
}
}
}while(n <= 0 || n > MAX);
int main()
for(int i = 0; i < n; i++)
{
{
int n;
printf("\nNhap a[%d]: ", i);
float a[MAX];
scanf("%f", &a[i]);
nhapmang_1Chieu(a, n);
}
xuat_mang_1Chieu(a, n);
}
float ln = lonnhat(a, n);
float lonnhat(float a[], int n)
{
printf("\nPhan tu lon nhat trong mang la
%.3f", ln);
float ln = a[0];
for(int i = 0; i < n; i++)
{
getch();
if(a[i] > ln)
return 0;
{
}
ln = a[i];
}
5.
Tính tổng các giá trị âm trong mảng 1 chiều
}
float tongam(float a[], int n)
return ln;
{
}
float s = 0;
void xuat_mang_1Chieu (float a[], int n)
for(int i = 0; i < n; i++)
3
{
int dem = 0;
if(a[i] < 0)
for(int i = 0; i < n; i++)
{
{
s = s + a[i];
if(a[i] % 2 == 0)
}
{
}
dem++;
return s;
}
}
}
int main()
return dem;
{
}
int n;
float a[MAX];
int main()
{
nhap(a, n);
int n;
xuat(a, n);
int a[MAX];
int x;
float tong = tongam(a, n);
printf("\nTong cac so am trong mang la %.3f",
nhap(a, n);
tong);
xuat(a, n);
getch();
int SoChan = DemSoChan(a, n);
return 0;
printf("\nSo luong so chan la %d", SoChan);
}
6.
Đếm số lượng số chẳn có trong mảng 1 chiều
getch();
…. #include<math.h>
return 0;
int DemSoChan(int a[ ], int n)
}
{
4
7.
Sắp xếp mảng giảm dần 1 chiều
… #include <math.h>
SapXepGiamDan(a, n);
void HoanVi(int &a, int &b)
printf("\nMang sau khi sap xep giam: ");
{
xuat(a, n);
int temp = a;
a = b;
getch();
b = temp;
return 0;
}
}
void SapXepGiamDan(int a[], int n)
{
8.
for(int i = 0; i < n - 1; i++)
Nhập xuất ma trận.
Tỉnh tổng các phần tử trên đường chéo chính, chéo
phụ
{
#include<stdio.h>
for(int j = i + 1; j < n; j++)
#include<conio.h>
{
#include<math.h>
if(a[i] < a[j])
#define MAX 100
{
void NhapMaTran(int a[][MAX], int &n)
HoanVi(a[i], a[j]);
}
}
}
{
do
{
printf("\nNhap n: ");
}
scanf("%d", &n);
int main()
if(n < 1 || n > MAX)
{
{
int n;
int a[MAX];
printf("\nSo phan tu khong
hop le. Xin kiem tra lai !");
}
}while(n < 1 || n > MAX);
nhap(a, n);
xuat(a, n);
5
for(int i = 0; i < n; i++)
S += a[i][i];
{
}
for(int j = 0; j < n; j++)
{
return S;
}
printf("\nNhap vao a[%d]
int TinhTongCacPhanTuTrenDuongCheoPhu(int a[]
[MAX], int n)
scanf("%d", &a[i][j]);
{
[%d] = ", i, j);
}
int S = 0;
}
for (int i = 0; i < n; i++)
}
{
S += a[i][n - 1 - i];
void XuatMaTran(int a[][MAX], int n)
}
{
return S;}
for(int i = 0; i < n; i++)
int main()
{
{
for(int j = 0; j < n; j++)
int a[MAX][MAX], n;
{
NhapMaTran(a,n);
printf("%4d",a[i][j]);
XuatMaTran(a,n);
}
printf("\n\n");
int tong =
TinhTongCacPhanTuTrenDuongCheoChinh(a, n);
}
printf("\nTong cac phan tu tren duong cheo
chinh = %d", tong);
}
int tongph =
TinhTongCacPhanTuTrenDuongCheoPhu(a, n);
int TinhTongCacPhanTuTrenDuongCheoChinh(int
a[][MAX], int n)
printf("\nTong cac phan tu tren duong cheo
phu = %d", tongph);
{
int S = 0;
for (int i = 0; i < n; i++)
getch();
return 0;
{
6
}
printf("%4d", a[i][j]);
}
9.
Tính tổng 2 ma trận
printf("\n\n");
}
#include<stdio.h>
}
#include<conio.h>
#include<math.h>
void TinhTong2MaTran(int a[][MAX], int b[][MAX],
int c[][MAX], int dong, int cot)
#define MAX 100
{
for(int i = 0; i < dong; i++)
void NhapMaTran(int a[][MAX], int &dong, int &cot)
{
{
for(int j = 0; j < cot; j++)
for(int i = 0; i < dong; i++)
{
{
c[i][j] = a[i][j] + b[i][j];
for(int j = 0; j < cot; j++)
}
{
}
printf("\nNhap a[%d][%d] =
", i, j);
}
scanf("%d", &a[i][j]);
}
}
int main()
{
int a[MAX][MAX], b[MAX][MAX], c[MAX]
[MAX], dong, cot;
}
//Nh?p s? dòng
do
void XuatMaTran(int a[][MAX], int dong, int cot)
{
{
printf("\nNhap vao so dong: ");
for(int i = 0; i < dong; i++)
// Cách tà d?o: scanf("dong =
%d",&dong); // Lúc nh?p ph?i vi?t thêm ch? ( dong =
) ? khung console
{
for(int j = 0; j < cot; j++)
scanf("%d",&dong);
{
7
if(dong < 1 || dong > MAX)
XuatMaTran(a, dong, cot);
{
printf("\nSo dong khong hop
printf("\nMa tran B vua nhap: \n");
le. Xin kiem tra lai!");
XuatMaTran(b, dong, cot);
}
TinhTong2MaTran(a, b, c, dong, cot);
}while(dong < 1 || dong > MAX);
printf("\nMa tran C = A + B \n");
XuatMaTran(c, dong, cot);
//Nh?p s? c?t
do
getch();
{
return 0;
printf("\nNhap vao so cot: ");
scanf("%d",&cot);
if(cot < 1 || cot > MAX)
}
** tích 2 ma trận
{
printf("\nSo cot khong hop
le. Xin kiem tra lai!");
void TinhTich2MaTran(int a[][MAX], int b[][MAX],
int t[][MAX], int donga, int cota, int cotb)
{
for(int i = 0; i < donga; i++)
}
{
for(int j = 0; j < cotb; j++)
}while(cot < 1 || cot > MAX);
{
printf("\nNhap vao ma tran A: \n");
t[i][j] = 0;
NhapMaTran(a, dong, cot);
for(int k = 0; k < cota; k++)
{
printf("\nNhap vao ma tran B: \n");
NhapMaTran(b, dong, cot);
t[i][j] += a[i][k] *
b[k][j];
}
printf("\nMa tran A vua nhap: \n");
}
8
}
//
}
scanf("%d", &a[n - 1]);
//}
void NhapMang(int **a, int dong, int cot, int i = 0)
10. Mảng 2 chiều
{
/* Đề bài: Nhập vào mảng 2 chiều các số nguyên,
if(i == dong * cot)
xuất ra mảng vừa nhập và thực hiện các thao
{
tác sau:
return; // K?t thúc.
a/ Tính tổng các phần tử của mảng.
}
b/ Tìm Min - Max của mảng.
c/ Đếm số lượng các số chẵn trong mảng.
printf("\nNhap vao a[%d][%d] = ", i / cot, i %
cot);
d/ Sắp xếp mảng tăng dần/giảm dần theo chiều từ trên xuống
dưới, từ trái qua phải.
scanf("%d", &a[i / cot][i % cot]);
NhapMang(a, dong, cot, i + 1);
Yêu cầu: Làm hoàn toàn bằng đệ quy */
}
#include <stdio.h>
void XuatMang(int **a, int dong, int cot, int i = 0)
#include <conio.h>
{
#include <limits.h>
if(i == dong * cot)
{
return;
//void NhapMang(int *a, int n)
}
//{
if(i % cot == 0)
//
if(n == 0)
//
{
{
printf("\n");
//
return;
}
//
}
printf("%4d", a[i / cot][i % cot]);
//
XuatMang(a, dong, cot, i + 1);
//
NhapMang(a, n - 1);
//
printf("\nNhap vao a[%d] = ", n - 1);
}
9
return TimMax(a, dong, cot, i + 1, a[i / cot][i
% cot] > Max ? a[i / cot][i % cot] : Max);
int TinhTong(int **a, int dong, int cot, int i = 0, int
Tong = 0)
}
{
if(i == dong * cot)
int DemSoLuongSoChan(int **a, int dong, int cot, int i
= 0, int dem = 0)
{
{
return Tong;
if(i == dong * cot)
}
{
return TinhTong(a, dong, cot, i + 1, Tong +
a[i / cot][i % cot]);
return dem;
}
}
return DemSoLuongSoChan(a, dong, cot, i +
1, a[i / cot][i % cot] % 2 == 0 ? dem + 1 : dem);
int TimMin(int **a, int dong, int cot, int i = 0, int Min
= INT_MAX)
}
{
if(i == dong * cot)
void HoanVi(int &a, int &b)
{
{
return Min;
int Temp = a;
}
a = b;
return TimMin(a, dong, cot, i + 1, a[i / cot][i
% cot] < Min ? a[i / cot][i % cot] : Min);
b = Temp;
}
}
void SapTangDan(int **a, int dong, int cot, int i = 0)
int TimMax(int **a, int dong, int cot, int i = 0, int Max
= INT_MIN)
{
{
if(i == dong * cot - 1)
if(i == dong * cot)
{
{
return;
return Max;
}
}
10
for(int k = i + 1; k < dong * cot; k++)
{
SapGiamDan(a, dong, cot, i + 1);
}
if(a[i / cot][i % cot] > a[k / cot][k %
cot])
int main()
{
{
HoanVi(a[i / cot][i % cot],
a[k / cot][k % cot]);
int dong = 3, cot = 3;
}
}
int **a = new int*[dong]; // C?p phát s? dòng.
SapTangDan(a, dong, cot, i + 1);
// V?i m?i dịng thì c?p phát s? c?t tuong ?ng.
}
for(int i = 0; i < dong; i++)
{
void SapGiamDan(int **a, int dong, int cot, int i = 0)
a[i] = new int[cot];
{
}
if(i == dong * cot - 1)
{
NhapMang(a, dong, cot);
return;
XuatMang(a, dong, cot);
}
printf("\nTong la: %d", TinhTong(a, dong,
cot));
for(int k = i + 1; k < dong * cot; k++)
printf("\nMin = %d & Max = %d", TimMin(a,
dong, cot), TimMax(a, dong, cot));
{
if(a[i / cot][i % cot] < a[k / cot][k %
cot])
printf("\nSo luong so chan = %d",
DemSoLuongSoChan(a, dong, cot));
{
HoanVi(a[i / cot][i % cot],
SapGiamDan(a, dong, cot);
a[k / cot][k % cot]);
printf("\nMang sau khi sap giam dan la: ");
}
XuatMang(a, dong, cot);
}
11
SapTangDan(a, dong, cot);
printf("\nGia tri vung nho pa tro den: %d", *pa);
printf("\nMang sau khi sap tang dan la: ");
printf("\nGia tri cua bien a: %d", a);
XuatMang(a, dong, cot);
printf("\nDia chi bien pa: %d", &pa);
/* Gi?i phóng con tr? c?p 2 */
for(int i = 0; i < dong; i++)
{
// -> địa chỉ biến pa,
// có 2 cái địa chỉ
// 1 là địa chỉ của biến con trỏ pa
// 2 là địa chỉ mà con trỏ pa trỏ đến
delete[] a[i];
}
delete[] a;
// Toán tử * để lấy ra giá trị mà con trỏ
đang trỏ đến
// Ko để tốn tử gì cả thì lấy ra địa chỉ
mà con trỏ đang trỏ đến
// Nếu để cả dấu & trước tên con trỏ thì ta
đang lấy ra "địa chỉ của riêng" con trỏ.
getch();
getch();
return 0;
return 0;
}
}
11. Con trỏ
** Khai báo và khởi tạo
12. SourceCode Phân số
#include<stdio.h>
#include<conio.h>
#include<stdio.h>
#include<stdlib.h>
#include<conio.h>
int main()
{
struct PhanSo
int a = 5, *pa = &a;
{
printf("\nGia tri bien pa: %d", pa);
float TuSo;
// -> pa và &a đều chỉ địa chỉ của biến a
float MauSo;
};
printf("\nDia chi cua bien a: %d", &a);
// -> *pa và a đều chỉ nội dung của biến a
typedef struct PhanSo PHANSO;
12
scanf("%f", &temp);
void NhapPhanSo(PHANSO &);
ps.MauSo = temp;
void XuatPhanSo(PHANSO);
if(ps.MauSo == 0)
PHANSO RutGonPhanSo(PHANSO);
{
PHANSO TinhTong2PhanSo(PHANSO, PHANSO);
printf("\nMau so phai khac
0. Xin kiem tra lai !");
PHANSO TinhHieu2PhanSo(PHANSO, PHANSO);
}
PHANSO TinhTich2PhanSo(PHANSO, PHANSO);
}while(ps.MauSo == 0);
PHANSO TinhThuong2PhanSo(PHANSO, PHANSO);
}
bool KiemTraPhanSoToiGian(PHANSO);
void QuiDong2PhanSo(PHANSO &, PHANSO &);
void XuatPhanSo(PHANSO ps)
bool KiemTraPhanSoDuong(PHANSO);
{
bool KiemTraPhanSoAm(PHANSO);
printf("%.2f / %.2f", ps.TuSo, ps.MauSo);
int SoSanh2PhanSo(PHANSO, PHANSO);
}
PHANSO operator +(PHANSO, PHANSO);
PHANSO operator -(PHANSO, PHANSO);
float TimUCLN(float a, float b)
PHANSO operator *(PHANSO, PHANSO);
{
PHANSO operator /(PHANSO, PHANSO);
if(a < 0)
{
a = a * -1;
void NhapPhanSo(PHANSO &ps)
}
{
if(b < 0)
float temp;
{
printf("\nNhap vao tu so: ");
b = b * -1;
scanf("%f", &temp);
}
ps.TuSo = temp;
do
if(a == 0 && b !=0)
{
{
printf("\nNhap vao mau so: ");
13
return b;
{
}
PHANSO ketqua;
else if( b == 0 && a != 0 )
ketqua.TuSo = a.TuSo * b.MauSo + a.MauSo
* b.TuSo;
{
ketqua.MauSo = a.MauSo * b.MauSo;
return a;
return ketqua;
}
}
// Bài 508 : tính hiệu 2 phân số
while(a != b)
PHANSO TinhHieu2PhanSo(PHANSO a, PHANSO b)
{
{
if(a > b)
PHANSO ketqua;
{
ketqua.TuSo = a.TuSo * b.MauSo - a.MauSo *
a = a - b;
b.TuSo;
}
ketqua.MauSo = a.MauSo * b.MauSo;
else
return ketqua;
b = b - a;
}
}
// Bài 509 : tính tích 2 phân số
return a;
PHANSO TinhTich2PhanSo(PHANSO a, PHANSO b)
{
}
// Bài 506: Rút gon phân số
PHANSO ketqua;
PHANSO RutGonPhanSo(PHANSO a)
ketqua.TuSo = a.TuSo * b.TuSo;
{
ketqua.MauSo = a.MauSo * b.MauSo;
return ketqua;
float UCLN = TimUCLN(a.TuSo, a.MauSo);
a.TuSo = a.TuSo / UCLN;
}
a.MauSo = a.MauSo / UCLN;
return a;
}
// Bài 507: tính tổng 2 phân số
// Bài 510 tính thương 2 phân số
PHANSO TinhThuong2PhanSo(PHANSO a, PHANSO
b)
{
PHANSO TinhTong2PhanSo(PHANSO a, PHANSO b)
14
PHANSO ketqua;
}
ketqua.TuSo = a.TuSo * b.MauSo;
ketqua.MauSo = a.MauSo * b.TuSo;
//513 Kiểm tra phân số dương
return ketqua;
bool KiemTraPhanSoDuong(PHANSO a)
}
{
if (a.TuSo >= 0 && a.MauSo > 0)
// Bài 511 kiểm tả phân số tối giản
return true;
bool KiemTraPhanSoToiGian(PHANSO a)
{
return false;
}
PHANSO c = RutGonPhanSo(a);
if (c.TuSo == a.TuSo && c.MauSo == a.MauSo)
return true;
//514 Kiểm tra phân só âm
bool KiemTraPhanSoAm(PHANSO a)
{
return false;
if (a.TuSo < 0 || a.MauSo < 0)
}
return true;
return false;
// Bài 512 quy đồng 2 phân số
}
void QuiDong2PhanSo(PHANSO &a, PHANSO &b)
{
//515 So sánh 2 phân số: hàm trả về 1 trong 3 giá trị: 0,1,1
PhanSo temp;
int SoSanh2PhanSo(PHANSO a, PHANSO b)
temp.TuSo = a.TuSo;
{
temp.MauSo = a.MauSo;
float kq1 = a.TuSo / a.MauSo;
float kq2 = b.TuSo / b.MauSo;
a.TuSo *= b.MauSo;
if (kq1 < kq2)
a.MauSo *= b.MauSo;
return -1;
if (kq1 > kq2)
b.TuSo *= temp.MauSo;
return 1;
b.MauSo *= temp.MauSo;
return 0;
15
}
PhanSo kq;
//516 Ð?nh nghia toán t? operator + cho 2 phân s?
kq.TuSo = a.TuSo * b.MauSo;
PHANSO operator +(PHANSO a, PHANSO b)
kq.MauSo = a.MauSo * b.TuSo;
{
return kq;
PhanSo kq;
}
kq.TuSo = a.TuSo * b.MauSo + a.MauSo * b.TuSo;
kq.MauSo = a.MauSo * b.MauSo;
//520 Ð?nh nghia toán t? operator ++ cho 2 phân s?
return kq;
PHANSO operator ++ (PHANSO &a)
}
{
//517 Ð?nh nghia toán t? operator - cho 2 phân s?
a.TuSo += a.MauSo;
PHANSO operator -(PHANSO a, PHANSO b)
return a;
{
}
PHANSO kq;
//521 Ð?nh nghia toán t? operator -- cho 2 phân s?
kq.TuSo = a.TuSo * b.MauSo - a.MauSo * b.TuSo;
PHANSO operator ++ (PHANSO &a)
kq.MauSo = a.MauSo * b.MauSo;
{
return kq;
a.TuSo -= a.MauSo;
}
return a;
//518 Ð?nh nghia toán t? operator * cho 2 phân s?
}
PHANSO operator *(PHANSO a, PHANSO b)
int main()
{
{
PhanSo kq;
PHANSO ps1, ps2;
kq.TuSo = a.TuSo * b.TuSo;
NhapPhanSo(ps1);
kq.MauSo = a.MauSo * b.MauSo;
XuatPhanSo(ps1);
return kq;
NhapPhanSo(ps2);
}
XuatPhanSo(ps2);
//519 Ð?nh nghia toán t? operator / cho 2 phân s?
PHANSO operator /(PHANSO a, PHANSO b)
// 506
{
PHANSO a = RutGonPhanSo(ps1);
16
printf("\nPhan so sau khi rut gon: ");
XuatPhanSo(a);
// 511
bool Check = KiemTraPhanSoToiGian(a);
PHANSO b = RutGonPhanSo(ps2);
if (Check)
printf("\nPhan so sau khi rut gon: ");
printf("\nPhan so a toi gian roi");
XuatPhanSo(b);
else
printf("\nPhan so a chua toi gian");
// 507
// 512
PHANSO tong = TinhTong2PhanSo(a, b);
QuiDong2PhanSo(ps1, ps2);
printf("\nTong 2 phan so: ");
printf("\nQuy dong phan so: ");
XuatPhanSo(tong);
XuatPhanSo(ps1);
printf("\nQuy dong phan so: ");
// 508
XuatPhanSo(ps2);
PHANSO hieu = TinhHieu2PhanSo(a, b);
getch();
printf("\nHieu 2 phan so: ");
return 0;
XuatPhanSo(hieu);
}
// 509
16. Tập tin
Đọc và in ra nội dung tập tin
PHANSO tich = TinhTich2PhanSo(a, b);
printf("\nTich 2 phan so: ");
XuatPhanSo(tich);
// 510
PHANSO thuong = TinhThuong2PhanSo(a,
b);
#include<stdio.h>
#include<conio.h>
void transFile(FILE* inFile, FILE* outFile)
{
printf("\nThuong 2 phan so: ");
int ch;
XuatPhanSo(thuong);
while(1)
17
{
#include<ctype.h>
ch = fgetc(inFile);
if(!feof(inFile))
void UpcaseFile(FILE* inoutFile)
{
{
fputc(ch, outFile);
char ch;
}
long pos;
else
while(!feof(inoutFile))
break;
{
}
ch = fgetc(inoutFile);
// d?c ký
t? hi?n hành
}
if(feof(inoutFile)){
void main()
break;
{
}
FILE *fpIn;
char* fname = "Data.txt";
fpIn = fopen(fname,"rt");
pos = ftell(inoutFile);
nh?n v? trí d?c ghi hi?n t?i
// ghi
fseek(inoutFile, pos - 1,
SEEK_SET); // d?i v? trí d?c ghi lên tru?c
if(fpIn == NULL)
ch = toupper(ch);
// d?i
fputc(ch, inoutFile);
// ghi
sang ký t? hoa
{
printf("FIle %s not found\n", fname);
ký t?
}
transFile(fpIn, stdout);
SEEK_SET);
fseek(inoutFile, pos,
// d?i v? trí d?c ghi v? ch? cu
}
fclose(fpIn);
}
getch();
}
void main()
{
char* fname = "Data.txt";
** In hoa các chữ trong tập tin
#include<stdio.h>
#include<conio.h>
FILE* fpInOut = fopen(fname, "r + b");
if(fpInOut == NULL)
{
18
printf("File %s not found!\n",
fscanf(f, "%d", &a[i]);
fname);
}
return;
fclose(f);
}
}
UpcaseFile(fpInOut);
void XuatMang(int n, int a[])
fclose(fpInOut);
{
getch();
for(int i = 0; i < n; i++)
}
{
printf("%4d", a[i]);
}
** Nhập mảng từ file
printf("\n");
#include<stdio.h>
}
#include<conio.h>
void XuatMangRaFile(char TenFile[], int n, int a[])
void NhapMangTuFile(char TenFile[], int &n, int a[])
{
{
FILE* f; f = fopen(TenFile, "w");
FILE* f;
if(f == NULL)
f = fopen(TenFile, "r");
{
if(f == NULL)
printf("\nKhong tao duoc file\n");
{
fclose(f);
printf("\nKhong doc duoc file");
return;
fclose(f);
}
return;
for(int i = 0; i < n; i++)
}
{
fprintf(f, "%4d", a[i]);
fscanf(f, "%d", &n);
}
for(int i = 0; i < n; i++)
fclose(f);
{
}
19
int main()
}
{
return found;
int n;
}
int a[100];
NhapMangTuFile("input.txt", n, a);
void main()
printf("\nMang da nhap");
{
XuatMangRaFile("output.txt", n, a);
FILE* fp = fopen("Data.txt", "rt");
getch();
char *str = "This is";
return 0;
if(fp != NULL)
}
{
** Tìm chuỗi kí tự
long pos = findLine(fp, str);
if(pos != -1)
#include<stdio.h>
{
#include<conio.h>
printf("Found at line #
%ld\n", pos);
#include<string.h>
}
#define maxN 2048
else
{
long findLine(FILE* inFile, char *str)
printf("\n" "%s not found in
file...\n", str);
{
}
long count = 0, found = -1; char line[maxN];
}
while(fgets(line, maxN - 1, inFile) != NULL)
{
getch();
if(strncmp(str, line, strlen(str)) == 0)
}
{
found = count;
break;
}
count++;
20