/*Bài 2: Viet chuong trình C so dong con tro và cap phát dong thuc hien các công viec sau: - Nhap mot dãy N so nguyên 0.
Trang 1/*Bài 2: Viet chuong trình C so dong con tro và cap phát dong thuc hien các công viec sau:
- Nhap mot dãy N so nguyên (0<N<100) tu file van ban có tên là “CAU2.IN”, trong file này dòng dau cua file
ghi so nguyên N, dòng thu 2 ghi N so nguyên cua dãy
- Viet hàm sap xep dãy so sao cho các so chan dua lên dau dãy Xuat dãy so sau khi sap xep ra màn hình
- Viet hàm nhap 2 so nguyên X và K (0<K = N), chèn so X vào vi trí K trong dãy Xuat dãy sau khi chèn ra màn hình.*/
#include<stdio.h>
int main(){
FILE *f;
f=fopen("LOPK24B.INP","r");//Mo file de doc
int n,i;
int a[100];//Mang luu tru day n so nguyen
//Doc tu file
fscanf(f,"%d",&n);
for(i=0;i<n;i++)
fscanf(f,"%d",&a[i]);
fclose(f);//Dong file
//Dua ra man hinh day doc duoc
printf("\nDay doc duoc tu file:\n");
for(i=0;i<n;i++)
printf("%d ",a[i]);
//sap xep day so sao cho so chan len dau int j,tg;
for(i=0;i<n-1;i++)
for(j=i+1;j<n;j++)
if(a[j]%2==0 && a[i]%2!=0){
tg = a[i];
a[i] = a[j];
a[j] = tg;
} printf("\nDay sau khi sap xep:\n");
for(i=0;i<n;i++)
printf("%d ",a[i]);
}
/*Bài 3: Viet chuong trình C su dung con tro và cap phát dong thuc hien các công viec sau:
- Nhap mot dãy N so nguyên (0<N<100) tu file van ban có tên là
“LOPK24B.INP”, trong file này dòng d?u c?a file
ghi so nguyên N, dòng thu 2 ghi N so nguyên cua dãy
- Viet hàm dao nguoc dãy so Xuat dãy so sau khi dao nguoc ra màn hình
- Viet hàm nhap mot so nguyên Y, xóa so hang bang Y dau tiên trong dãy (neu có) Xuat dãy so sau khi xóa ra
màn hình.*/
Trang 2int main(){
FILE *f;
f=fopen("LOPK24BD.INP","r");//Mo file de doc
int n,i;
int a[100];//Mang luu tru day n so nguyen
//Doc tu file
fscanf(f,"%d",&n);
for(i=0;i<n;i++)
fscanf(f,"%d",&a[i]);
fclose(f);//Dong file
//Dua ra man hinh day doc duoc
printf("\nDay doc duoc tu file:\n");
for(i=0;i<n;i++)
printf("%d ",a[i]);
//sap xep dao nguoc printf("\nDay sau dao nguoc:\n");
for(i=n;i>=0;i )
printf("%d ",a[i]);
}
#include <stdio.h>
//Ham tinh so hang thu n cua day Fibonacci - Viet de quy
int Fibo(int n){
if(n==1||n==2)
return 1;
else
return Fibo(n-1)+Fibo(n-2);
}
int main(){
int i,n;//n- duoc nhap vao tu ban phim, i - bien dieu khien
printf("Nhap vao so n=");
scanf("%d",&n);
printf("\nDay %d so hang Fibonacci dau tien:\n",n); for(i=1;i<=n;i++)
printf("%d ",Fibo(i));//Ham Fibo(i) duoc goi n lan }
#include <stdio.h>
//Ham tinh so hang thu n cua day Fibonacci - Viet de quy
long Fibo(long n){
long a,b,c;
Trang 3return 1;
else{
a=1;b=1;
long i;
for(i=3;i<=n;i++){
c=a+b;
a=b;
b=c;
} return c;
}
}
int main(){
long i,n;//n- duoc nhap vao tu ban phim, i - bien dieu khien
printf("Nhap vao so n=");
scanf("%ld",&n);
printf("\nDay %d so hang Fibonacci dau tien:\n",n);
for(i=1;i<=n;i++)
printf("%ld ",Fibo(i));//Ham Fibo(i) duoc goi n lan }
/*Bài 21: Viet chuong trình C có xây dung hàm dem tong cac chu so le cua
so nguyên duong n, voi 0<n<2000000000 duoc nhap tu file van ban có tên là
"CAU1.IN" Neu du lieu vào hop le thì xuat ket qua toi file van ban có tên
là "CAU1.OUT", trái lai hãy thông báo ra màn hình loi không ton tai file
du lieu hoac sai dinh dang du lieu.
*/
#include<stdio.h>
int tongcacchusole(long n){
int tong=0,chuso;
while(n!=0){
chuso=n%10;
if (chuso%2==1)
tong=tong+chuso;
n=n/10;
}
return tong;
}
int main(){
FILE *f,*f2;
Trang 4long n;
f=fopen("chunhat.txt","r");//Mo file de doc
if(f==NULL)
printf("Loi mo file! Hoac sai dinh dang!");
else{
fscanf(f,"%ld",&n);//Doc tu file ra bien n
f2=fopen("cau1.out","w");//Mo file de ghi ket qua vao fprintf(f2,"%d",tongcacchusole(n));//Ghi ket qua tinh duoc tu ham S(n)
ra file
// cau1.out }
fclose(f);
fclose(f2);
}
/*Bài 23: Viet chuong trình C có xây dung hàm dem so luong chu so
cua so nguyên duong n, voi n<2000000000 duoc nhap tu file van ban có tên
là "chunhat.txt"
Neu du lieu vào hop le thì xuat ket qua toi file van ban có tên là "CAU1.OUT", trái lai hãy thông báo ra màn hình
*/
#include<stdio.h>
int demsochuso(long n){
int dem=0;
while(n!=0){
dem++;
n=n/10;
}
return dem;
}
int main(){
FILE *f,*f2;
long n;
f=fopen("chunhat.txt","r");//Mo file de doc
if(f==NULL)
printf("Loi mo file! Hoac sai dinh dang!");
else{
fscanf(f,"%ld",&n);//Doc tu file ra bien n f2=fopen("cau1.out","w");//Mo file de ghi ket qua vao fprintf(f2,"%d",demsochuso(n));//Ghi ket qua tinh duoc tu ham S(n) ra file
// cau1.out }
Trang 5fclose(f2);
}
/*Bài 24: Viet chuong trình C có xây dung hàm dem so luong chu so le cua
so nguyên duong n, voi 0<n<2000000000 duoc nhap tu file van ban có tên là
"CAU1.IN" Neu du lieu vào hop le thì xuat ket qua toi file van ban có tên
là "CAU1.OUT", trái lai hãy thông báo ra màn hình loi không ton tai file
du lieu hoac sai dinh dang du lieu.
*/
#include<stdio.h>
int demsochusole(long n){
int dem=0,chuso;
while(n!=0){
chuso=n%10;
if (chuso%2==1)
dem++;
n=n/10;
}
return dem;
}
int main(){
FILE *f,*f2;
long n;
f=fopen("chunhat.txt","r");//Mo file de doc
if(f==NULL)
printf("Loi mo file! Hoac sai dinh dang!");
else{
fscanf(f,"%ld",&n);//Doc tu file ra bien n f2=fopen("cau1.out","w");//Mo file de ghi ket qua vao fprintf(f2,"%d",demsochusole(n));//Ghi ket qua tinh duoc tu ham S(n) ra file
// cau1.out }
fclose(f);
fclose(f2);
}
#include <stdio.h>
int Hoan_vi(int a,int b){
int temp;
temp=a;
Trang 6b=temp;
}
int main(){
int x,y;
x=2021;y=2022;
printf("Truoc khi goi ham hoan vi: x=%d y=%d \n",x,y); Hoan_vi(x,y);
printf("Sau khi goi hma hoan vi: x=%d y=%d \n",x,y);
}
#include <stdio.h>
//Ham co doi so la con tro
int Hoan_vi(int *a,int *b){
int temp;
temp=*a;
*a=*b;
*b=temp;
}
int main(){
int x,y;
x=2021;y=2022;
printf("Truoc khi goi ham hoan vi: x=%d y=%d \n",x,y); Hoan_vi(&x,&y);//Loi goi ham - truyen dia chi cua bien
printf("Sau khi goi ham hoan vi: x=%d y=%d \n",x,y);
//gia tri cua bien tahy doi sau khi goi ham
}
#include <stdio.h>
//Truyen theo dang tham chieu
int Hoan_vi(int &a,int &b){
int temp;
temp=a;
a=b;
b=temp;
}
int main(){
int x,y;
x=2021;y=2022;
printf("Truoc khi goi ham hoan vi: x=%d y=%d \n",x,y); Hoan_vi(x,y);//Loi goi ham rat tu nhien
printf("Sau khi goi hma hoan vi: x=%d y=%d \n",x,y);
Trang 7//Gia tri cua x y thay doi sau loi goi ham
}
#include <stdio.h>
#include <conio.h>
//Khai bao kieu du lieu
typedef struct {
char hoten[30];
float toan,ly,hoa;
}Thisinh;
int main(){
Thisinh ts[100];
int n,i;
//Nhap vao danh sach thi sinh
printf("Nhap vao so luong thi sinh:");scanf("%d",&n);
for(i=0;i<n;i++){
fflush(stdin);//Lam sach bo dem >xoa ma cua phim Enter printf("Nhap ho ten cua thi sinh thu %d:",(i+1));
gets(ts[i].hoten);
printf("Diem Toan:");scanf("%f",&ts[i].toan);
printf("Diem Ly:");scanf("%f",&ts[i].ly);
printf("Diem Hoa:");scanf("%f",&ts[i].hoa);
}
printf("\nDanh sach thi sinh sau khi nhap:\n");
printf(" HO VA TEN - TOAN - LY - HOA - TONG DIEM \n"); for(i=0;i<n;i++)
printf("%30s - %6.2f - %6.2f - %6.2f - %6.2f\
n",ts[i].hoten,ts[i].toan,ts[i].ly,ts[i].hoa,
ts[i].toan+ts[i].ly+ts[i].hoa);
//In danh sach trung tuyen
float diemchuan;
printf("Nhap diem chuan:");scanf("%f",&diemchuan);
printf("\nDanh sach thi sinh trung tuyen:\n");
printf(" HO VA TEN - TOAN - LY - HOA - TONG DIEM \n"); for(i=0;i<n;i++)
if((ts[i].toan+ts[i].ly+ts[i].hoa>=diemchuan) && (ts[i].toan>0) && ts[i].ly>0 && (ts[i].hoa>0))
printf("%30s - %6.2f - %6.2f - %6.2f - %6.2f\
n",ts[i].hoten,ts[i].toan,ts[i].ly,ts[i].hoa,
ts[i].toan+ts[i].ly+ts[i].hoa);
//Dua ra thi sinh co tong diem cao nhat
float max=0;//Gan gia tri ban dau cho Max
//TIm diem chuan cao nhat
for(i=0;i<n;i++)
Trang 8max=ts[i].toan+ts[i].ly+ts[i].hoa;
//Dua ra danh sach cac thi sinh cos diem chuan cao nhat
printf("\nDanh sach thi sinh co diem cao nhat:\n");
printf(" HO VA TEN - TOAN - LY - HOA - TONG DIEM \n"); for(i=0;i<n;i++)
if(ts[i].toan+ts[i].ly+ts[i].hoa == max)
printf("%30s - %6.2f - %6.2f - %6.2f - %6.2f\
n",ts[i].hoten,ts[i].toan,ts[i].ly,ts[i].hoa,
ts[i].toan+ts[i].ly+ts[i].hoa);
}
#include <stdio.h>
#include <conio.h>
//Khai bao kieu du lieu
typedef struct {
char hoten[30];
float toan,ly,hoa;
float tongdiem;
}Thisinh;
int main(){
Thisinh ts[100];
int n,i;
//Nhap vao danh sach thi sinh
printf("Nhap vao so luong thi sinh:");scanf("%d",&n);
for(i=0;i<n;i++){
fflush(stdin);//Lam sach bo dem >xoa ma cua phim Enter printf("Nhap ho ten cua thi sinh thu %d:",(i+1));
gets(ts[i].hoten);
printf("Diem Toan:");scanf("%f",&ts[i].toan);
printf("Diem Ly:");scanf("%f",&ts[i].ly);
printf("Diem Hoa:");scanf("%f",&ts[i].hoa);
ts[i].tongdiem=ts[i].toan+ts[i].ly+ts[i].hoa;
}
printf("\nDanh sach thi sinh sau khi nhap:\n");
printf(" HO VA TEN - TOAN - LY - HOA - TONG DIEM \ n");
for(i=0;i<n;i++)
printf("%30s - %5.2f - %5.2f - %5.2f - %5.2f\
n",ts[i].hoten,ts[i].toan,ts[i].ly,ts[i].hoa,ts[i].tongdiem);
//In danh sach trung tuyen
float diemchuan;
printf("Nhap diem chuan:");scanf("%f",&diemchuan);
printf("\nDanh sach thi sinh trung tuyen:\n");
Trang 9printf(" HO VA TEN - TOAN - LY - HOA - TONG DIEM \ n");
for(i=0;i<n;i++)
if((ts[i].toan+ts[i].ly+ts[i].hoa>=diemchuan) && (ts[i].toan>0) && ts[i].ly>0 && (ts[i].hoa>0))
printf("%30s - %5.2f - %5.2f - %5.2f - %5.2f\
n",ts[i].hoten,ts[i].toan,ts[i].ly,ts[i].hoa,ts[i].tongdiem);
//Dua ra thi sinh co tong diem cao nhat
float max=0;//Gan gia tri ban dau cho Max
//TIm diem chuan cao nhat
for(i=0;i<n;i++)
if(ts[i].tongdiem>max)
max=ts[i].tongdiem;
//Dua ra danh sach cac thi sinh cos diem chuan cao nhat
printf("\nDanh sach thi sinh co diem cao nhat:\n");
printf(" HO VA TEN - TOAN - LY - HOA - TONG DIEM \ n");
for(i=0;i<n;i++)
if(ts[i].tongdiem == max)
printf("%30s - %5.2f - %5.2f - %5.2f - %5.2f\
n",ts[i].hoten,ts[i].toan,ts[i].ly,ts[i].hoa,ts[i].tongdiem);
//Sap xep danh sach thi sinh giam dan theo tong diem
int j;
Thisinh tg;//Bien trung gian -Doi cho thi sinh
for(i=0;i<n-1;i++)
for(j=i+1;j<n;j++)
if(ts[i].tongdiem<ts[j].tongdiem){
//Doi cho 2 thisinh tg=ts[i];
ts[i]=ts[j];
ts[j]=tg;
} printf("\nDanh sach thi sinh sau khi sap xep diem giam dan:\n");
printf(" HO VA TEN - TOAN - LY - HOA - TONG DIEM \ n");
for(i=0;i<n;i++)
printf("%30s - %5.2f - %5.2f - %5.2f - %5.2f\
n",ts[i].hoten,ts[i].toan,ts[i].ly,ts[i].hoa,ts[i].tongdiem);
//Lay diem chuan cua K thi sinh
int k,dem;
printf("Nhap so luong thi sinh can lay:");scanf("%d",&k);
diemchuan=ts[0].tongdiem;//Gan gia tri ban dau cho diemchuan
dem=0;i=0;//i la so thi sinh thu i
while (dem<k){
diemchuan=ts[i].tongdiem;
i++;dem++;
Trang 10printf("\nDiem chuan de lay duoc %d thi sinh la: %f",k,diemchuan);
}
#include<stdio.h>
#include<string.h>
typedef struct {
char hoten[30];
char masv[30];
float diemtb;
int gioitinh;
} Sinhvien;
int main(){
//Khai bao
FILE *f;
f=fopen("BAI1.INP","wb");//File nhi phan, mo de ghi
Sinhvien sv;
//Do du lieu va tu ban phim va ghi vao file
do{
printf("Nhap vao ho ten sinh vien:");fflush(stdin);
gets(sv.hoten);
if(strcmp(sv.hoten,"*")!=0){
printf("Nhap Ma sinh vien:");gets(sv.masv);
printf("Diem trung binh:");scanf("%f",&sv.diemtb);
printf("Gioi tinh:");scanf("%d",&sv.gioitinh);
fwrite(&sv,sizeof(Sinhvien),1,f);
} }while (strcmp(sv.hoten,"*")!=0);
fclose(f);//Dong file
//Doc tu file dua ra man hinh
f=fopen("BAI1.INP","rb");//File nhi phan, mo de ghi
printf("\nDanh sach sinh vien doc tu file:\n");
printf("\n HO VA TEN - MA SV - DIEM TB - Gioi tinh\n"); while(fread(&sv,sizeof(Sinhvien),1,f)!=NULL){
printf("%30s - %10s - %6.2f - ",sv.hoten,sv.masv,sv.diemtb);
if(sv.gioitinh==1)
printf(" Nu\n");
else printf(" Nam\n");
}
//Dua ra man hinh cac sinh vien co diem tb>5
rewind(f);//Dua con tro file ve dau tep
printf("\nDanh sach sinh vien co diem trung binh > 5:\n");
printf("\n HO VA TEN - MA SV - DIEM TB - Gioi tinh\n"); while(fread(&sv,sizeof(Sinhvien),1,f)!=NULL){
if (sv.diemtb>5){
printf("%30s - %10s - %6.2f - ",sv.hoten,sv.masv,sv.diemtb); if(sv.gioitinh==1)
Trang 11printf(" Nu\n");
else printf(" Nam\n");
} }
//Sap xep - doc ra mang struct
}
/*Lap trình doc vào mot danh sách không quá 100 sinh viên gom: Ho tên, nam sinh
Ðua ra DS nhung sinh viên sinh nam 1990
Ðua ra DSSV dã sap xep theo thu tu ABC*/
#include <stdio.h>
#include <conio.h>
#include <string.h> //Thu vien cua cac ham xu ly chuoi
typedef struct {
char hoten[30];
int namsinh;
}Sinhvien;
int main(){
Sinhvien sv[100];//sv - la mang gom co 100 phan tu, moi phan tu la kieu cau truc Sinhvien
int i,n;
char st[30];
//Nhap danh sach sinh vien
printf("Nhap so luong sinh vien:");scanf("%d",&n);fflush(stdin);
for(i=0;i<n;i++){
fflush(stdin);
printf("Nhap ho va ten sinh vien thu %d:",(i+1));
gets(sv[i].hoten);
printf("Nhap nam sinh:");scanf("%d",&sv[i].namsinh);
}
//In danh sach sau khi nhap ra man hinh
printf("\nDanh sach sinh vien sau khi nhap:\n");
for(i=0;i<n;i++)
printf("%30s - %5d\n",sv[i].hoten,sv[i].namsinh);
//In danh sach nhung sinh vien snh nam 1990 ra man hinh
printf("\nDanh sach sinh vien sinh nam 1990:\n");
for(i=0;i<n;i++)
if(sv[i].namsinh==1990)
printf("%30s - %5d\n",sv[i].hoten,sv[i].namsinh);
//Sap xep danh sach sinh vien theo ABC phan hoten
Sinhvien tg;
int j;
for(i=0;i<n-1;i++)
for(j=i+1;j<n;j++)
Trang 12//Doi cho sv[i] voi sv[j]
tg=sv[i];
sv[i]=sv[j];
sv[j]=tg;
} printf("\nDanh sach sinh vien sau khi sap xep:\n");
for(i=0;i<n;i++)
printf("%30s - %5d\n",sv[i].hoten,sv[i].namsinh);
}
/*- Nhap mot dãy N so nguyên (0<N<100) tu file van ban có tên là "INPUT.INP", trong file này dòng dau cua file ghi so nguyên N,
dòng thu 2 ghi N so nguyên cua dãy.
- Viet hàm sap xep dãy so theo thu tu tang dan
Dua dãy so sau khi sap xep ra màn hình.
*/
#include<stdio.h>
int main(){
FILE *f;
f=fopen("INPUT.INP","r");//Mo file de doc
int n,i;
int a[100];//Mang luu tru day n so nguyen
//Doc tu file
fscanf(f,"%d",&n);
for(i=0;i<n;i++)
fscanf(f,"%d",&a[i]);
fclose(f);//Dong file
//Dua ra man hinh day doc duoc
printf("\nDay doc duoc tu file:\n");
for(i=0;i<n;i++)
printf("%d ",a[i]);
//Sap xep day theo thu tu tang dan
int j,tg;
for(i=0;i<n-1;i++)
for(j=i+1;j<n;j++)
if(a[i]>a[j]){
//Doi cho hai so a[i] va a[j]
tg=a[i];
a[i]=a[j];
a[j]=tg;
} printf("\nDay sau khi sap xep:\n");
for(i=0;i<n;i++)