Mình dùng codeblock
để code, mình tạo file INPUT
trong ổ đĩa D.Debug thì thấy con trỏ file
vẫn nhận giá trị NULL tức là mở file INPUT
không thành công rồi.Nhờ mọi kiểm tra zùm mình với.
#include<stdio.h>
int doi_coso2(int soNguyen);
int kiemtra_doixung(int soNguyen);
void in(int soLan_test,FILE *file,FILE *file1);
int main(){
FILE *file,*file1;
int soLan_test=0;
file=fopen("D:\INPUT","rt");
file1=fopen("D:\OUTPUT","wt");
fscanf(file,"%d",&soLan_test);
in(soLan_test,file,file1);
fclose(file);
fclose(file1);
return 0;
}
int doi_coso2(int soNguyen){
int dem=0,mang_tam[100]={},tam=0,co_so2=0;
do{
tam=soNguyen;
soNguyen=soNguyen/2;
mang_tam[dem]=tam-soNguyen*2;
if(soNguyen!=0)
dem++;
}while(soNguyen!=0);
for(int i=0;i<=dem;i++){
co_so2=co_so2*10+mang_tam[i];
}
return co_so2;
}
int kiemtra_doixung(int soNguyen){
int doi_xung=0,tam1=soNguyen,tam2=0;
while(tam1!=0){
tam2=tam1%10;
doi_xung=doi_xung*10+tam2;
tam1=tam1/10;
}
if(doi_xung==soNguyen)
return 1;
else
return 0;
}
void in(int soLan_test,FILE *file,FILE *file1){
int tam=0,soLan_in=0,so_goc=0;
for(int i=1;i<=soLan_test;i++){
fscanf(file,"%d",&soLan_in);
fscanf(file,"%d",&so_goc);
for(int j=so_goc+1,dem=1;dem<=soLan_in;j++){
tam=doi_coso2(j);
if(kiemtra_doixung(tam)==1){
fprintf(file1,"%d\t",j);
dem++;
}
}
fprintf(file1,"\n");
}
Nội dung file INPUT:
2 // số lần test.
3 25 //3: số Lần in,25:số gốc
2 1 // 2:số lần in, 1:số gốc.