1. Czy wiesz co to są tablice VLA https://en.wikipedia.org/wiki/Variable-length_array i że nie ma ich w standardzie C++?
2. Ile elementów powinna mieć tablica ps jeśli zawierać ma napis "w stylu C" składający się z 15 znaków '-'?
3. Jaki jest stan tablicy przed wywołaniem funkcji kreska?
PS1. Rozwiązanie konkurencyjne, bez tablicy:
#include <iostream>
#include <string>
void kreska(int licz) {
std::cout << std::string(licz, '-') << std::endl;
if(licz > 1) {
kreska(licz - 1);
}
std::cout << std::string(licz, '-') << std::endl;
}
int main()
{
kreska (15);
}
PS2. A jak ktoś nie boi się code review i że go powieszą za takie pisanie, to można i tak :-) (sam bym siebie "chłostał"):
#include <cstdio>
bool znak(int licz) {
return (licz && (putchar('-'), znak(licz - 1)))
|| putchar('\n');
}
bool kreska(int licz) {
return ((znak(licz), licz > 1) && (kreska(licz - 1))), znak(licz);
}
int main() {
kreska (15);
}