C言語の操作順列

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)。

}

公開された239元の記事 ウォンの賞賛3 ビュー3162

おすすめ

転載: blog.csdn.net/it_xiangqiang/article/details/105164248