Dinamikus tömb esetén C nyelven tudnátok segíteni egy résznél?
Dinamikus tömböt akarok csinálni, ami a bekért számokat fordított sorrendben írja ki.
Eddig jutottam, viszont nem tudom, hogyan kellene azt, hogy a felhasználó adja meg a darabot, és a számokat.
#include <stdio.h>
#include <stdlib.h>
void scantomb(int tomb[], const int size);
void printtomb(int tomb[], const int size);
void kiirhatra(int tomb[], int n)
{
if
(n > 0)
{
kiirhatra(tomb+1, n-1);
printf("%d ", tomb[0]);
}
}
int main(void)
{
const int size;
int *tomb=(int*) malloc(sizeof(const int)*size);
scantomb(tomb, size);
printtomb(tomb, size);
kiirhatra(tomb, );
printf("\n");
free(tomb);
return 0;
}
void scantomb(int tomb[], const int size)
{
for(int i=0; i<size; i++)
{
scanf("%d", &tomb[i]);
}
return;
}
void printtomb(int tomb[], const int size)
{
for(int i=0; i<size; i++)
{
printf("[%d]=%d\n", i, tomb[i]);
}
return;
}
Úgy tűnik alapvető problémák vannak, például konstans a változód, amibe beolvasnál. Tedd lokális változóvá, és scanf-fel kérd be az adatot. Ezután a mallocnak átadhatod a méret változód. De amúgy felesleges rekurzióval terhelni a stacket, bizonyos számú változó után megtelik, neked egy ciklus kell.
Szóval:
void kiirhatra(int const tomb[], const int size){
for(int i=size-1; i>=0; i++){
printf("[%d]: %d ", i, tomb[i]);
}
}
Köszönöm!
Tehát, ha jól értem, akkor a const int size-t kell, int size-ra cserélnem?
Illetve, hogyan kérem be a darabszámot,majd utána a számokat?
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!