شارك المقالة

لطباعة الأعداد الفردية في C++ نبدأ من 1 ونزيد العدد بمقدار 2 حتى الحد المطلوب. يختص هذا الدرس بإنتاج نطاق من الأعداد، بينما درس الزوجي والفردي المرتبط في النهاية يفحص عددًا واحدًا. المثال لا يستخدم متغيرًا غير مهيأ ولا يصف العدد الفردي بأنه even.

الكود الكامل باستخدام C++17

#include <iostream>

int main() {
    int limit{};
    std::cout << "Limit (0..10000): ";
    if (!(std::cin >> limit) || limit < 0 || limit > 10000) {
        std::cout << "Invalid limit.\n";
        return 1;
    }
    for (int number = 1; number <= limit; number += 2)
        std::cout << number << ' ';
    std::cout << '\n';
}

كيف تعمل الحلقة؟

تبدأ for بقيمة 1، وتتحقق من عدم تجاوز limit، ثم تطبع العدد وتزيده باثنين. عند إدخال 10 تكون النتيجة 1 3 5 7 9، وعند إدخال 1 تكون النتيجة 1 فقط. حددنا المجال من 0 إلى 10000 حتى لا ينتج عن خطأ إدخال طباعة ضخمة في الطرفية. الصفر يعطي سطرًا فارغًا لأنه لا توجد أعداد بين 1 و0.

باقي القسمة وطريقة أخرى

يمكن المرور على كل عدد واختبار number % 2 != 0 بدل الخطوة 2. هذه الصيغة تصلح لفحص الأعداد الفردية السالبة أيضًا؛ لا تفترض أن الباقي يساوي 1 دائمًا في C++. استخدام الزيادة باثنين أوفر عندما يكون أول عدد فردي معروفًا.

التجربة ومعالجة الإدخال

جرّب 5 و6 و0، ثم أدخل نصًا غير رقمي أو قيمة سالبة لتتأكد من رفضها. لا تطبع متغيرًا باسم number بينما تقرأ الإدخال في متغير مختلف؛ يجب أن تكون القيمة التي تختبرها واضحة ومهيأة. بعد فهم الحلقة يمكنك إضافة عداد للأعداد المطبوعة أو جمعها كتدريب إضافي.

ترجمة المثال وتشغيله

احفظ المثال في ملف main.cpp واختر معيار C++17 في محررك. مع GCC أو Clang يمكنك الترجمة بالأمر g++ -std=c++17 -Wall -Wextra -pedantic main.cpp -o main ثم تشغيل الملف الناتج. ترجم كل مثال كبرنامج مستقل؛ لا تجمع دوال main من دروس مختلفة في ملف واحد.

شاهد أيضًا
مقالات ذات صلة
🚫 مانع الإعلانات مفعل

يجب إيقاف مانع الإعلانات لاستكمال تصفح الموقع