#include <iostream>
#include <sstream>
using namespace std;
int factorial(int number) {
if (number < 0)
return false;
if (number == 0)
return 1;
return number * factorial(number - 1);
}
void show_multiply (int number) {
stringstream res;
for (int i = number; i > 1; i--) {
res << i << " x ";
}
res << "1";
cout << res.str();
}
int main() {
int x = 5;
int fact = factorial(x);
show_multiply(x);
}
أولاً: لحساب الـ factorial انت بحاجة بس لـ parameter واحد.
ثانياً: لا تستخدم تابع show_multiply ضمن cout.
الخطأ عندك انو تابع show_multiply عم تساوي جواتو تعليمات cout، والخرج تبعو من النمط int، ومو محدد خرج لإلو إلا return 0 لهيك دائماً عم يخرج 0
الحل: إما تخلي تابع show_multiply يساوي تعليمات cout، وبدون خرج، وبالتالي لح يطبع 5x4x3x2x1، وما تستدعيه ضمن cout تانية خارجية (وهاد الحل يلي استخدمتو بالكود تبعي)
أو إنك تخلي خرج التابع show_multiply من النمط string، وتعملو cout من برا.