IN.DAT知られているデータが200 4桁の番号でファイル、およびにこれらの数に読み出し機能readDat()配列と呼ばれているが、ある機能のjsval()、準備してください。数千の場所と10桁の再形成の新しい10桁ABは(新たな10桁の番号は10元千4桁の数字であり、新たな10桁の数であり、元の10 4桁の数字のビット)そして、2桁の数字と百数の別の新しい10桁のCD(新しい10桁の数字は、元の4桁の数字の10ビットであり、新たに10桁の数字は、元の4桁のものです数百の桁)、新しい2 10桁の数字がゼロでない間、2〜10桁の新規組成物AB-CD> = 0およびAB-CD <= 10 2つは、奇数である場合にこの条件は、配列bに格納された数字の降順に満足され、桁数CNTが上記条件を満たして計算します。
最後に、main()関数はOUT.DATファイルに書き込む機能writeDat()CNT B出力アレイの資格4桁を呼び出します。
書式#include <stdio.hに>
#define MAX 200のint A [MAX]、B [MAX]、CNT = 0。
空のjsval()
{int型I、J、汝、フン、10、データ、AB、CD、
以下のための式(I = 0、I <200; I ++)
{あなたは= [I] / 1000。フン= A [i]の%1000/100。
10 [i]は%を= 100/10; データ= [I]%10。
AB = 10 あなた+ 10と、CD = 10のデータ+フン。
IF((AB-CD)> = 0 &&(AB-CD)<= 10 && AB%21 && CDの%21 && AB> = 10 && CD> = 10)
B [CNT ++] = [I]。
}
以下のための式(I = 0、I <CNT-1; I ++)
(; J <CNT; J ++ J = I + 1)のために
IF(B [i]が<B [J]){あなたは、[i]はBを=。B [I] = B [J]; B [J] =あなた;}
}
空readDat()
{
私はint型。
FILE * fpを。
FP =のfopen(「R」、「in.dat」)。
関数fscanf(FP、「%のD」、および[I]);(; I <MAX I ++ I = 0)するため
FCLOSE(FP)。
}
無効メイン()
{
私はint型。
readDat();
jsval();
printf( "条件数を満たす=%D \ n" は、CNT)。
printf( "%dの"、B [i])と(I ++; I <CNT I = 0)ため、
printf( "\ n" は);
writeDat(); }
writeDat()
{
FILE * fpを。
私はint型。
FP =のfopen(「out.dat」、「W」)。
関数fprintf(FP、「%D \ n」は、CNT)。
ための式(I 0 =; I <CNT; I ++)関数fprintf(FP、「%D \ n」、B [I])。
FCLOSE(FP)。
}