ما المشكلة في هذا البرنامج
#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();
}ما المشكلة في هذا البرنامج
#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();
}أهليييييييين khaled_helmy
لو سمحت تقول لنا وش يبغى البرنامج بالضبط عشان نعرف وشو الخطأ....
المشكلة في
s<=2
لان s لم يتم اعطاؤها اي قيمة وبالتالي فقيمتها هي 0
وال loop لن يتم تنفيذها لان s ستكون دائما
s<0
ومن المفروض ان تتعامل ال loop مع ال i وليس ال s
راكان الحنيطي
Be Open Source

#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
اخى انا حقيقي عاجز عن الشكر للمساعدة و المشاركة و انا اسف جدا عن عدم وضوح الموضوع من العنوان.
و اعتقد اني فهمت وجهة نظرك ولكن اذا دققت اكثر في الموضوع ستجد انك وقعت في نفس المشكلة وهي ان ال S قيمتها صفر. فما هو الحل البديل
و بالنسبة الي الأخ الذي يريد معرفة فكرة البرنامج هو انه يريد معرفة عدد الحدود التي اذا جمعناها شرط ان المجموع اصغر من 2
s=1/1+1/2+1/3+1/4... s<=2
و في انتظار الرد
السلام عليكم ,,
خذ الكود :
#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 ,, :)
وفقك الله ,,
اخي khaled_helmy
اعذرني لم اقم بحل المشكلة لقد نسيت هذا الموضوع ولم اتذكر اني رديت عليه الا اليوم والسبب كما تعرف ان المشاركات التي تحمل عنوان مساعدة لا اقوم بدخولها عندما اكون مستعجلا لاني لا اعلم ما بداخلها...
لكن الاخ HGB قدم الحل وهو ان قيمة X ستكون دائما صفر لانه ليس float..
ان شاء الله هذا هوالحل
لذلك قم بكتابة اجراء القسمة كالتالي
x=(float)1/i;
تم تعديل هذه المشاركة بواسطة J Programmer في 30 مايو 2004 في 13:51
هذا الموضوع مغلق.