2012年6月29日金曜日

抵抗器

抵抗器のカラーコードを入力して、値を表示するプログラムを作ってみた。
#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;
}
もっと良い方法が知りたい…。

2012年6月24日日曜日

シグマとガウス

↑を解くプログラムを作ってみた。
#include <stdio.h>
int main(void) {
    int n, i;
    double sum =0.0;
    printf("Input number: ");
    scanf("%d", &n);
    for(i=1; i<=n; i++) {
        sum += i* (int)(i/3);
    }
    printf("%.0lf\n", sum);
    return 0;
}
n=10 のとき 111
n=100 のとき 111111
n=1000 のとき 111111111
 …
おもしろいな~。

2012年6月8日金曜日

そろそろ寿命かな~

昨日、PCが起ちあがらなくなった。
セーフモードも、ファイルが見つからないとかでダメ。
XPのCD-ROMから回復コンソールを起動してfixmbrを実行したら、なおった。
MBRが壊れたのか…。
何もしていないのに…。
買い替えなければ…。