Kezdőoldal » Számítástechnika » Programozás » Hogy csináljak 10nél nagyobb...

Hogy csináljak 10nél nagyobb alapú számrendszerben lévő számból tömböt?

Figyelt kérdés

[link]


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?


2016. nov. 7. 15:48
 1/7 anonim ***** válasza:
Hasonlóan, mint a 10nél kisebb számrendszerekben. Ha ott ment, akkor 10 fölött is menni fog.
2016. nov. 7. 15:59
Hasznos számodra ez a válasz?
 2/7 anonim ***** válasza:
Gondolom stringként olvasod be, az meg a legtöbb nyelvben már alapból tömb, vagy kezelhető tömbszerűen.
2016. nov. 7. 16:15
Hasznos számodra ez a válasz?
 3/7 SimkoL ***** válasza:
Nagyon javallott a halmazoknak való utánanézés mivel az sokat gyorsít az ellenörzésen. Nyelvet is írhattál volna.
2016. nov. 7. 16:54
Hasznos számodra ez a válasz?
 4/7 A kérdező kommentje:
c nyelv
2016. nov. 7. 16:56
 5/7 anonim ***** válasza:

É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.

2016. nov. 7. 17:53
Hasznos számodra ez a válasz?
 6/7 SimkoL ***** válasza:

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;

}

2016. nov. 7. 19:16
Hasznos számodra ez a válasz?
 7/7 anonim ***** válasza:

int valid_digit(char digit, int base) {

__return (toupper(digit) >= '0') && (toupper(digit) < '0' + base))

}

2016. nov. 7. 22:28
Hasznos számodra ez a válasz?

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

A weboldalon megjelenő anyagok nem minősülnek szerkesztői tartalomnak, előzetes ellenőrzésen nem esnek át, az üzemeltető véleményét nem tükrözik.
Ha kifogással szeretne élni valamely tartalommal kapcsolatban, kérjük jelezze e-mailes elérhetőségünkön!