Hogy csináljak 10nél nagyobb alapú számrendszerben lévő számból tömböt?
ez a feladat(egyelőre még csak az ellenőrzést próbálom megoldani),és arra gondoltam,hogy a beolvasott számból csinálok egy tömböt és a tömb elemeit egy ciklussal ellenőrzöm,hogy tényleg benne van-e a szám abban a számrendszerben
pl 16-os számrendszer,a beolvasott szám A2F35
akkor ugye azt kellene megnézni,hogy {A,2,F,3,5} tömb minden eleme A-F vagy 0-9 közötti-e
vagy van valakinek jobb ötlete?
Én inkább úgy csinálnám, hogy a beolvasott string (szám) minden karakterére meghívnék egy függvényt, ami int értékként adja vissza. Így nem kell tömb, egy sima feltételben ellenőrizhető, hogy az int érték 0 és X között van-e.
Kiírásra egy hasonló függvény használható, ami az int-et karakterré alakítja.
Annyira nem vágom a C-t, de én valahogy így képzelném el:
#include <stdio.h>
#include <stdlib.h>
#include <ctype.h>
char elemek[] = "0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ";
int ellen(int rendszer, char szam[]){
int i, j, van;
for (i = 0; i < strlen(szam); i++){
van = 0;
for (j = 0; j < rendszer; j++){
if (toupper(szam[i]) == elemek[j]) van = 1;
}
if (van == 0) return van;
}
return van;
}
int main(int argc, char *argv[])
{
printf("%d ", ellen(2, "0101")); // Igaz
printf("%d ", ellen(16, "abcdefg0123456")); // Hamis
system("PAUSE");
return 0;
}
int valid_digit(char digit, int base) {
__return (toupper(digit) >= '0') && (toupper(digit) < '0' + base))
}
Kapcsolódó kérdések:
Minden jog fenntartva © 2024, www.gyakorikerdesek.hu
GYIK | Szabályzat | Jogi nyilatkozat | Adatvédelem | Cookie beállítások | WebMinute Kft. | Facebook | Kapcsolat: info(kukac)gyakorikerdesek.hu
Ha kifogással szeretne élni valamely tartalommal kapcsolatban, kérjük jelezze e-mailes elérhetőségünkön!