עבור לתוכן

מבקש עזרה, לא עובדת לי התוכנית שבניתי ב с

Featured Replies

פורסם

בניתי תוכנית שאמורה לחשב את כול המספרים המושלמים, התוכנית מקמפלת הבעיה היא שזה לא מדפיס לי כלום.

מספר טבעי n הוא משוכלל אם הוא שווה לסכום מחלקיו הקטנים ממנו. למשל, 6=1+2+3 הוא משוכלל.

התכנית תדפיס כפלט את כל המספרים המשוכללים בטווח 1 עד 1000.

[#include <stdio.h>

main ()

{

int divisor,i,half,sum;

printf("the perfect numbers are: \n");

for(i = 1;i <= 1000;i++);

{

half=i/2;

if(i != 1)

sum=i+1;

else

sum=1;

for(divisor = 2;divisor <= half;divisor++)

if (i % divisor == 0)

sum= sum + divisor;

if(sum == i)

printf("%d \n",sum);

}

}/left]

פורסם
for(i = 1;i <= 1000;i++);

יש לך נקודה-פסיק בסוף ה- for.

פורסם
  • מחבר

תודה רבה,עובד

פורסם

תקנו אותי אם אני טועה אבל זו טעות לכתוב

if(i != 1)
sum=i+1;

או שאני מפספס משו..

אני חושב שככה זה יוצא נכון

#include <stdio.h>


main ()

{

int divisor,i,half,sum;

printf("the perfect numbers are: \n");
for(i = 1;i <= 1000;i++)
{
half=i/2;
sum=1;
for(divisor = 2;divisor <= half;divisor++)
if (i % divisor == 0)
sum= sum + divisor;
if(sum == i)
printf("%d \n",sum);
}

}

פורסם

צודק. sum רק גדל ולא מתחיל מחדש עבור כל מספר שנבדק.

ארכיון

דיון זה הועבר לארכיון ולא ניתן להוסיף בו תגובות חדשות.

דיונים חדשים