#include<iostream>#include<sstream>usingnamespace std;int factorial(int number){if(number <0)returnfalse;if(number ==0)return1;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 من برا.
ما الخطأ في شيفرة C++ التالية؟
في أسئلة البرمجة
نشر · تم التعديل في بواسطة عمار الشيخ
أولاً: لحساب الـ factorial انت بحاجة بس لـ parameter واحد.
ثانياً: لا تستخدم تابع show_multiply ضمن cout.
الخطأ عندك انو تابع show_multiply عم تساوي جواتو تعليمات cout، والخرج تبعو من النمط int، ومو محدد خرج لإلو إلا return 0 لهيك دائماً عم يخرج 0
الحل: إما تخلي تابع show_multiply يساوي تعليمات cout، وبدون خرج، وبالتالي لح يطبع 5x4x3x2x1، وما تستدعيه ضمن cout تانية خارجية (وهاد الحل يلي استخدمتو بالكود تبعي)
أو إنك تخلي خرج التابع show_multiply من النمط string، وتعملو cout من برا.