الفريق العربي للبرمجةأرشيف المنتديات · 2000 – 2023
نسخة أرشيفية للقراءة فقط — التسجيل والمشاركة مغلقان، والمحتوى محفوظ كما كان.

مشكلة في الكود سورس ؟؟

بدأه hicham@com في 25 فبراير 2014 · 3 رد · 531 مشاهدة · في الأسئلة المجابة
مشاركة: واتساب X فيسبوك تيليجرام
#1 صاحب الموضوع

السلام عليكم ورحمة الله وبركاته 

ههه راح يجنني كل شئ صحيح ومش عارف المشكلة وين كل ما اعمل عدد فردي تختفي الشاشة ؟؟؟؟ :(  :(  :(  :(  :(  :(  :(

#include<stdio.h>
#include<stdlib.h>

main()
{
int n,i,Sp=0,Si=0;

    printf("donner un entier\t");
    scanf("%d\n",&n);
    Sp=0;
    for (i=1;i<=n;i++)
    {
        if (i%2==0)
        {
            Sp=Sp+i;
        }else{
            Sp=Sp+i;
        }
        if (n%2==0)
        {
            printf("%d\n",Sp);
        }else{
            printf("%d\n",Si);
        }
    }


system("pause");
}
−1
#2

لا أدري ماذا تقصد بعبارة :"كل شئ صحيح"

!

أولاً :هذه العبارة خاطئة

else{Sp=Sp+i;}

يجب أن تستخدم Si بدلاً من Sp

 

ثانياً:

scanf("%d\n",&n);

اكتب بدلاً منها

scanf("%d",&n);

بالتوفيق

1
#3

و عليكم السلام و رحمة الله و بركاته اخي الكريم

على ما اعتقد ان الكود الذي تريد كتابته يقوم بحساب مجموع الاعداد الزوجية او الفردية الاقل من عدد يدخله المستخدم ثم يرى ان كان العدد الذي ادخله المستخدم زوجيا فهو يطبع مجموع الاعداد الزوجية و ان كان فرديا يطبع مجموع الاعداد الفردية

في الكود الخاص بك هناك اخطاء ناتجة عن السهو ربما او عدم التركيز فان كان البرنامج يعمل على حسب ما قلته لك فاخطاؤك كالاتي

اولا فيما يخص هذا

else{            Sp=Sp+i;        }

من المفترض هنا انك تقوم بحساب مجموع الاعداد الفردية لا الزوجية اذن فالاصح هو هذا

else{            Si=Si+i;        }

ثانيا عندك خطأ جسيم في الدالة scanf

scanf("%d\n",&n)

اذ انه من المستحيل على ما اعلم ان تكون هناك \n في معطيات الدالة scanf و الاصح هو هذا

scanf("%d",&n)

ثم الخطأ الثالث الذي ( اكيد ان كان المطلوب كما قلته لك ) فهو يتمركز في طباعة المجموع اذ انك قمت بادخال تعليمة الطبع في الحلقة for فينتج عن ذلك طباعة المجموع في كل مرة 

        if (n%2==0)
        {
            printf("%d\n",Sp);
        }else{
            printf("%d\n",Si);
        }

اذ انه يجب عليك اخراج هاته التعليمات من الحلقة for 

و ايضا لماذا استخدمت هاته المكتبة ؟

#include<stdlib.h>

فهي لا تفيدك باي شيء

 

و ملاحظة صغيرة فقط و هي عبارة عن منهجية الكود و سهولة فهمه لمن يراه دون الحاجة لتتبعه فيا اخي يجب ان تضع عبارات موضحة للمستخدم و من يرى الكود الخاص بك حتى يفهم هدف برنامجك و يجب ان تهتم ايضا بمظهر الكود  ^_^  فهذا لا جعل من يرى الكود الخاص بك ينفر منه بسهولة

 

هذا هو الكود بعد التعديل حسب ما فهمته من البرنامج

#include<stdio.h>
main()
{
int n,i,Sp=0,Si=0;

    printf("donner un entier SVP : ");
    scanf("%d",&n);
    for (i=1;i<=n;i++)
    {
        if (i%2==0)
        {
            Sp=Sp+i;
        }
        else
        {
            Si=Si+i;
        }
    }
    if (n%2==0)
    {
        printf("\nla somme des nombres (paires) inferieur ou egale de %d est %d\n\n",n,Sp);
    }
    else
    {
        printf("\nla somme des nombres (impaires) inferieur ou egale de %d est %d\n\n",n,Si);
    }
    system("pause");
}

و في الاخير اخي الكريم ارجو لك التوفيق في مسيرتك  ^_^

ابتسم للدنيا تبتسم لك و افعل الخير و انساه و لا تنسى أي أمر سيء قمت به حتى لا تكرره


لا تنسونا من صالح دعائكم أعانكم الله و ثبتكم على سواء السبيل


:)  :lol:  ^_^ 

#4

شكرا أخي وبارك الله فيك  ;)  :)  :)

مواضيع مشابهة