Cześć, ktoś się zna cokolwiek na rekurencji ?
Bo już z pół dnia siedzę nad zadaniem i próbuje ugryźć na różny sposób i nie mogę dojść do ładu z tym.
Zadanie :
A oto co udało mi się już stworzyć:
#include <stdio.h>
#include <stdlib.h>
char *concat( char *tab1, char *tab2 ) {
char* wynik;
wynik =malloc((strlen(tab1)+strlen(tab2))*sizeof(char)+1);
int g;
for(g=0; g<strlen(tab1); ++g)
wynik[g]=tab1[g];
int w;
for(w=0; w<strlen(tab2); ++g, ++w){
wynik[g]=tab2[w];
}
wynik[strlen(tab1) + strlen(tab2)] = '\0';
return wynik;
}
void drzewo(int n){
int i,j;
char *odstep = "| ";
char *odstepKoncowy = ": - ";
char *katalog = "katalog";
char *tmp=" ";
if(n<=0) {
return ;
}
else{
drzewo(n-1);
for(i=0;i<n-1;i++){
tmp = concat(tmp,odstep);
}
tmp = concat(tmp,odstepKoncowy);
tmp = concat(tmp,katalog);
printf("%s\n",tmp);
}
}
void katalogi(int n){
int i;
char *odstep = "| ";
char *odstepKoncowy = ": - ";
char *plik = "plik";
char *tmp=" ";
printf("- katalog\n");
drzewo(n-1);
for(i=0;i<n-1;i++){
tmp = concat(tmp,odstep);
}
tmp = concat(tmp,odstepKoncowy);
tmp = concat(tmp,plik);
printf("%s\n",tmp);
printf("%s\n",tmp);
drzewo(n-1);
printf("%s\n",tmp);
printf("%s\n",tmp);
}
int main()
{
katalogi(5);
}