Cod sursa(job #424185)

Utilizator danielsDaniel Anechitoaie daniels Data 24 martie 2010 17:33:45
Problema Cifra Scor 100
Compilator c Status done
Runda Arhiva de probleme Marime 1.17 kb
#include <stdio.h>
#include <stdlib.h>
#include <math.h>
#include <string.h>

int main()
{
    FILE *fpIn, *fpOut;
    char nr[101];
    int sArray[] =
    {0, 1, 5, 2, 8, 3, 9, 2, 8, 7,
     7, 8, 4, 7, 3, 8, 4, 1, 5, 4,
     4, 5, 9, 6, 2, 7, 3, 6, 2, 1,
     1, 2, 8, 1, 7, 2, 8, 5, 9, 8,
     8, 9, 3, 0, 6, 1, 7, 0, 6, 5,
     5, 6, 2, 5, 1, 6, 2, 9, 3, 2,
     2, 3, 7, 4, 0, 5, 1, 4, 0, 9,
     9, 0, 6, 9, 5, 0, 6, 3, 7, 6,
     6, 7, 1, 8, 4, 9, 5, 8, 4, 3,
     3, 4, 0, 3, 9, 4, 0, 7, 1, 0};


    fpIn = fopen("cifra.in","r");
    if (fpIn == NULL) {
        fprintf(stderr, "Eroare accesare adunare.in\n");
        exit(1);
    }

    fpOut = fopen("cifra.out","w");
    if (fpOut == NULL) {
        fprintf(stderr, "Eroare accesare adunare.out\n");
        exit(1);
    }

    fscanf(fpIn, "%s", nr);

    while (fscanf(fpIn, "%s", nr) != EOF) {
        int l = strlen(nr);
        if ( l > 1) {
            fprintf(fpOut, "%d\n", sArray[(((nr[l-2]-'0')*10)+nr[l-1]-'0')%100]);
        } else {
            fprintf(fpOut, "%d\n", sArray[(nr[l-1]-'0')%100]);
        }
    }

    fclose(fpIn);
    fclose(fpOut);

    return 0;
}