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

تصحيح الاخطاء

مغلق
بدأه alr7al2002 في 16 أكتوبر 2003 · 4 رد · 1,424 مشاهدة · في ارشيف قسم C/C++
مشاركة: واتساب X فيسبوك تيليجرام
#1 صاحب الموضوع

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

البرنامج يحتوي على ثلاث وظائف الاولى in_list وهي تقارن بين الارقام التي وضعت قبله فاذا كان الرقم مساوي لاي رقم قبله فانها لاتحسبه عند ايجاد المجموع

والوظيفة الثانية هي حساب المجموع والثالثة حساب المتوسط باستدعاء وظيفة المحموع

ويقوم المستخدم بادخال الارقام حتى عشرين و ايضا عندما يكون الادخال EOF

البرنامج

/* nodups.c */
#include <stdio.h>
#define ArraySize 20

/* function */
int in_list(int,int,int[]);
int total(int,int[]);
float  average(int,int[]);

int main()
{
  int num[ArraySize];
  int T[ArraySize];
  while(scanf("%d",num[ArraySize])!=EOF)
    {
      for(i=0;i<20;i++)
       {
        scanf("%d\n",&num);
        printf("%d",num);
        in_list(num,num[i-1],T);
      }
        printf("Total %d\n",total(i,num);
 printf("Total %d\n",average(i,num);

       }




}

int in_list(int NewV,int OldV,int Value[ArraySize])
{
  if(NewV==OldV)
    {
      return 1;
      Value[ArraySize]=Value[ArraySize]-NewV;

    }
  if(NewV !=OldV)
    {
      return 0;
 Value[ArraySize]=Value[ArraySize]+NewV;

    }
}

int total(int a,int b[ArraySize])
{
  int a=0;
  return b[ArraySize]+=a;
}

float  average(int c,int d[ArraySize])
{
  return (total(c,d[Arraysize]))/20;
}

اتمنا ان احصل على التصحيح في اسرع وقت ممكن وشكرا

#2

ارجوكم ساعدوني

#3

السلام عليكم,

انظر الرابط هنا :

http://www.arabteam2000.com/ib/index.php?s...showtopic=34377

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

وأريد أن أوضح شيء مهم وهو أنه حين نكون وسط دالة فحين نكتب return فإننا نخرج من هده الدالة أي ما يأتي بعد هدا كأنه شيء زائد ولا يؤخد بعين الإعتبار كمثالك :

if(NewV==OldV)

{

return 1;

Value[ArraySize]=Value[ArraySize]-NewV;

}

if(NewV !=OldV)

{

return 0;

Value[ArraySize]=Value[ArraySize]+NewV;

}

يعني هنا مثلا السطرين ما بعد return لن يقوما بأي مهمة وهده من بين الأخطاء الأخرى.

وكدلك حين نستعمل مجموعة الأرقام أو arrays فهنا يجب أخد بعض الإحتياطات فمنها من يعتبر عدد عادي ومنها من يعتبر مؤشر لدى لا يجب الخلط بينهما.

إلى اللقاء.

#4

أخي بالامكان كتابة البرنامج بطريقة أخرى أسهل و لكن دعنا نبدأ به خطوة خطوة .... مع مشاركتك

مدونتي

http://mbnoimi.net

#5

أخي بالامكان كتابة البرنامج بطريقة أخرى أسهل بصيغ C++ و لكن دعنا نبدأ به خطوة خطوة .... (مع مشاركتك)

مدونتي

http://mbnoimi.net

هذا الموضوع مغلق.

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