抵抗器のカラーコードを入力して、値を表示するプログラムを作ってみた。
#include <stdio.h>
int toler(int n) {
int t;
switch(n) {
case 1: t=1; break;
case 2: t=2; break;
case 10: t=5; break;
case 11: t=10; break;
case 12: t=20; break;
}
return t;
}
int main(void) {
int n1, n2, n3, n4, value, tolerance;
printf("0:黒、1:茶、2:赤、3:橙、4:黄、5:緑、6:青、7:紫、8:灰、9:白、10:金、11:銀、12:無\n");
printf("スペースで区切って、数字を入力: ");
scanf("%d %d %d %d", &n1, &n2, &n3, &n4);
value = n1 * 10 + n2;
switch(n3) {
case 0: printf("%dΩ ", value); break;
case 1: printf("%dΩ ", value*10); break;
case 2: printf("%.1fkΩ ", (double)value/10); break;
case 3: printf("%dkΩ ", value); break;
case 4: printf("%dkΩ ", value*10); break;
case 5: printf("%.1fMΩ ", (double)value/10); break;
case 6: printf("%dMΩ ", value); break;
case 7: printf("%dMΩ ", value*10); break;
case 8: printf("%dMΩ ", value*100); break;
case 9: printf("%dMΩ ", value*1000); break;
case 10: printf("%.1fΩ ", (double)value/10); break;
case 11: printf("%.2fΩ ", (double)value/100); break;
}
tolerance = toler(n4);
printf("±%d%\n", tolerance);
return 0;
}
もっと良い方法が知りたい…。