اذهب إلى المحتوى

عمار الشيخ

الأعضاء
  • المساهمات

    1
  • تاريخ الانضمام

  • تاريخ آخر زيارة

أجوبة بواسطة عمار الشيخ

  1. #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 من برا.

×
×
  • أضف...