#define PROG "e24hi (rev.3)" #define TITLE "電気: E24系列の2数の比" #define BY " (C)2005 Midolikawa H. (やねのすずめ)" #define USAGE "使用法 : e24hi \n" #define SPEC "・一覧表を標準出力\n" \ " ■:E6 ★:E12 ◎:E24 *:E6-E6 \n" \ " 小数点は省略\n" \ "<使用例>・オペアンプの増幅率設定用に、2本の抵抗値を選ぶ\n" /*********************************************** コンパイル(LSI-C): lcc e24hi.c ( -lintlib 不可 ) (2) mark 処理方式変更 (2) %.4e -> %.3e に修正 (四捨五入の桁が異なる) (3) E6目印 ***********************************************/ #include #include #include void e24hi(void) { int i,j; /* ループカウンタ */ char work[15+1]; /* 文字列編集用ワーク */ int e24[] = { 10, 11, 12, 13, 15, 16, 18, 20, 22, 24, 27, 30, 33, 36, 39, 43, 47, 51, 56, 62, 68, 75, 82, 91 }; /*(2)*/ char mark[] = "■◎★◎■◎★◎■◎★◎■◎★◎■◎★◎■◎★◎"; for (i=0; i<24; ++i) { for (j=0; j<24; ++j) { if (j==i) /*(2)*/ printf( " %.2s%u", mark+i+i, e24[i] ); else { /*(3)*/ printf("%.1s", "* "+( (i | j) & 3) ); /*(2)*/ sprintf( work, "%.3e", ((float)e24[j]) / e24[i] ); /*(3)*/ printf( "%.1s%.3s", work, work+2 ); } } printf("\n"); } } /*============================== 説明表示 ==============================*/ void usage() { fprintf(stderr,"\n" PROG "\n" TITLE "\n" BY "\n\n" USAGE "\n" SPEC); } /*============================== メインル−チン ==============================*/ int main(int argc, char *argv[]) { /*説明表示*/ if (argv[1] != NULL) { usage(); exit(22); } /*主処理*/ e24hi(); /*正常終了*/ exit(0); }