- Linux kezdőknek
- Hálózati / IP kamera
- Starlink
- Nagy botrányt okoz az EU kiberbiztonsági terve
- Windows 10
- Vodafone otthoni szolgáltatások (TV, internet, telefon)
- Kockáztatnak a bankok, ha AI-t használnak
- Facebook profil letiltás kapcsolt ismeretlen Instagram fiók miatt
- eBay
- A TikTok Lite is igen káros lehet a gyerekekre
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