Aktív témák

  • dzsessz

    csendes tag

    Sziasztok. Volna egy problémám. C-ben kellen írni egy programot, ami stringként tárolt hexadecimális számokat olvas be fájlból, amig '='-jelet nem kap. Valamit kapirgáltam, de sajnos több benne a hiba mint hajszál a fejemen. Nagyon megköszönném, ha valaki ki tudna segíteni. Pascalban eltudom küldeni a működő cuccot, ha az segít. THX

    #include <stdio.h>
    #include <string.h>

    FILE *fin, *fout;
    int carry; //az átvitel tárolására
    int osszeg[255] = {0}; //kinullázva deklarálunk 1 tömböt a decimális összegnek
    int szamlalo,lnh,hossz,ki,valami; //felhasznált ciklusváltozók
    char Hszam[255]; //bemenő adatnak
    char vosszeg[255]; //kimenő adatnak


    void atalakit(int osszeg; char vosszeg)
    {
    int veosszeg;
    {
    carry=osszeg/16;
    osszeg=osszeg%16;
    veosszeg=osszeg;

    switch (veosszeg) {
    case 10: vosszeg='A'; break;
    case 11: vosszeg='B'; break;
    case 12: vosszeg='C'; break;
    case 13: vosszeg='D'; break;
    case 14: vosszeg='E'; break;
    case 15: vosszeg='F'; break;
    case 1: vosszeg='1'; break;
    case 2: vosszeg='2'; break;
    case 3: vosszeg='3'; break;
    case 4: vosszeg='4'; break;
    case 5: vosszeg='5'; break;
    case 6: vosszeg='6'; break;
    case 7: vosszeg='7'; break;
    case 8: vosszeg='8'; break;
    case 9: vosszeg='9'; break;
    }
    }
    }

    int main(void)
    {
    fin =fopen(''be.txt'',''r'');
    fout =fopen(''ki.txt'',''w'');

    fgets(Hszam, 255, stdin); if (Hszam==''='') {break;}
    lnh=strlen(Hszam);
    do {
    for (szamlalo=strlen(Hszam), szamlalo>=1, szamlalo--)
    {
    switch (Hszam[szamlalo]) {
    case 'a': ki=10; break;
    case 'A': ki=10; break;
    case 'b': ki=11; break;
    case 'B': ki=11; break;
    case 'c': ki=12; break;
    case 'C': ki=12; break;
    case 'd': ki=13; break;
    case 'D': ki=13; break;
    case 'e': ki=14; break;
    case 'E': ki=14; break;
    case 'f': ki=15; break;
    case 'F': ki=15; break;
    case '0': ki=0; break;
    case '1': ki=1; break;
    case '2': ki=2; break;
    case '3': ki=3; break;
    case '4': ki=4; break;
    case '5': ki=5; break;
    case '6': ki=6; break;
    case '7': ki=7; break;
    case '8': ki=8; break;
    case '9': ki=9; break;
    default fprintf(fout,''Hibás input, a program leállt''); halt;
    }
    valami=strlen(Hszam)-szamlalo+1;
    osszeg[valami]=osszeg[valami]+ki;
    }
    szamlalo=0;
    do {
    ++szamlalo;
    atalakit(osszeg[szamlalo],vosszeg[szamlalo]);
    osszeg[szamlalo+1]=osszeg[szamlalo+1]+carry;
    if ((szamlalo=lnhn) && (carry>=1)) {lnh=lnh+1;}
    while (!szamlalo==lnh);
    }
    fgets(Hszam, 255, stdin);
    if (lnh<strlen(Hszam)) {lnh=strlen(Hszam);}
    while (!Hszam==''='');
    }
    for (lnh; lnh>=1, lnh--) {fprintf(fout,''%s'',vosszeg[lnh]);} //háturlól kezdve kiírjuk a hexaszámot

    }

    a és b kongruencia modulo n

Aktív témák