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

ما المشكلة

مغلق
بدأه khaled_helmy في 29 مايو 2004 · 6 رد · 625 مشاهدة · في الأسئلة المجابة
مشاركة: واتساب X فيسبوك تيليجرام
#1 صاحب الموضوع

ما المشكلة في هذا البرنامج

#include <conio.h>
#include <stdio.h>
void main()
{
int i;
float s,x;
for(i=1;s<=2;i++)
{
x=1/i;
s=s+x;
}
printf("%d",i);
getch();
}
#2

أهليييييييين khaled_helmy

لو سمحت تقول لنا وش يبغى البرنامج بالضبط عشان نعرف وشو الخطأ....

#3

المشكلة في

s<=2

لان s لم يتم اعطاؤها اي قيمة وبالتالي فقيمتها هي 0

وال loop لن يتم تنفيذها لان s ستكون دائما

s<0

ومن المفروض ان تتعامل ال loop مع ال i وليس ال s

راكان الحنيطي

Be Open Source

opensource-550x4752.gif

#4
#include <conio.h>
#include <stdio.h>
void main()
{
int i;
float s,x;
for(i=1;s<=1.9999;i++)
{
x=1/i;
s=s+x;
}
printf("%d",i);
getch();
}

هذا الكود سيضبط معاك بعد كذا تكرار

واذا لم يضبط قم بتعديل القيمة 1.9999

الى القيمة 1.9 مثلا

اخي khaled_helmy

اتمنى منك في المرات القادمة كتابة عنوان للموضوع دال على المحتوى

واهلا وسهلا بك في الفريق

تم تعديل هذه المشاركة بواسطة J Programmer في 29 مايو 2004 في 16:13

#5

اخى انا حقيقي عاجز عن الشكر للمساعدة و المشاركة و انا اسف جدا عن عدم وضوح الموضوع من العنوان.

و اعتقد اني فهمت وجهة نظرك ولكن اذا دققت اكثر في الموضوع ستجد انك وقعت في نفس المشكلة وهي ان ال S قيمتها صفر. فما هو الحل البديل

و بالنسبة الي الأخ الذي يريد معرفة فكرة البرنامج هو انه يريد معرفة عدد الحدود التي اذا جمعناها شرط ان المجموع اصغر من 2

s=1/1+1/2+1/3+1/4... s<=2

و في انتظار الرد

#6

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

خذ الكود :

#include <conio.h>
#include <stdio.h>
#include <windows.h>.
void main()
{
int i=0;
float s=0.0345,x=0;
for(i=1;s<=100;i++)
{
x=1/i;
s=s+x;
printf("%f \n",s);
Sleep(10);

}
printf("%d",i);
getch();
}

المشكلة هي أن الرقم x قيمته لم تكن عشرية لأن ال i كانت صحيحة ,, ستقول لي مادخل ال i في الموضوع سأقول هذه مشكلة ربما في المصرف ,, أو شيء لم أعرفه أنا حتى الآن ,, عموما اذا أردت التأكد من أمور كهذه فقط اعرض القيم التي تأخذها هذه المتغيرات كل مرة وستجد النتيجة ,,

عدلت في البرنامج ليوجد الحدود وحتى 100 ,, وجعلت زمنا للتأخير ب 10 ميلي ثواني ,, لتستطيع أن تراقب مايحدث في المجموع s ,, :)

وفقك الله ,,

banner_60_468.gif

NOTHING IS IMPOSSIBLE

#7

اخي khaled_helmy

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

لكن الاخ HGB قدم الحل وهو ان قيمة X ستكون دائما صفر لانه ليس float..

ان شاء الله هذا هوالحل

لذلك قم بكتابة اجراء القسمة كالتالي

x=(float)1/i;

تم تعديل هذه المشاركة بواسطة J Programmer في 30 مايو 2004 في 13:51

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

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