Mi lehet a hiba az alábbi programmal? A feladat az lenne, hogy egy tízes számrendszerbeli számot átvált egy tetszőleges 10-nél kisebb számrendszerbe.
#include<stdio.h>
#include<stdlib.h>
void szamjegy(int szam, int szamrendszer, int *hanyszamjegy){
int szamlalo=1;
while(szam>1){
szam=szam/szamrendszer;
szamlalo++;
}
*hanyszamjegy=szamlalo;
}
void munka(int szam, int szamrendszer, int *kimenet){
int i=0;
int hanyszamjegy;
szamjegy(szam,szamrendszer,&hanyszamjegy);
kimenet=malloc((hanyszamjegy)*sizeof(int));
for(i=0;i<=hanyszamjegy;i++){
kimenet[i]=szam%szamrendszer;
szam=szam-kimenet[i];
szam=szam/szamrendszer;
}
}
int main(){
int hanyszamjegy;
int szam;
int szamrendszer;
printf("Add meg, hogy melyik számrendszerbe, és mit szeretnél átváltani!\n");
scanf("%d %d",&szamrendszer,&szam);
int *kimenet;
int i=0;
szamjegy(szam,szamrendszer,&hanyszamjegy);
kimenet=malloc((hanyszamjegy)*sizeof(int));
munka(szam,szamrendszer,kimenet);
for(i=0;i<hanyszamjegy;i++){
printf("%d",kimenet[i]);
}
putchar('\n');
return 0;
}
Itt:
for(i=0;i<=hanyszamjegy;i++){
például <= helyett csak < kéne, mert most db+1-szer fut le, a kimenet[db]-ba probal irni, ami ugye nem lefoglalt már. Nem mondom, hogy ez megoldja a gondod, de ez pl egy hiba a kódban.
Talán mert az egész teljesen rossz.
Kezdetnek: írd le ide szavakkal, hogy mit csinál a "szamjegy" függvényed (mit kap, és mit csinál vele), majd írj egy példa bemenetre egy példa kimenetet.
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!