-2
我正在寫一個代碼來打印給定範圍內的所有完美數字。 我爲我的代碼執行了空運行。但是我沒有得到預期的結果。完美數字邏輯檢查
#include<stdio.h>
void perfect(int,int);
int main()
{
int start,end;
printf("Enter range");
scanf("%d%d",&start,&end);
perfect(start,end);
return 0;
}
void perfect(int s,int e)
{
int i=0,j=0,sum=0;
for(i=s;i<=e;i++)
{
for(j=1;j<i;j++)
{
if(i%j==0) //i contains the number in range
{
sum=sum+j;
}
}
if(sum==i) // if sum of all factors of the number is equal to the number then its perfect number
{
printf("%d",i);
}
}
}
輸入:1 10 沒有輸出可見。 預期輸出:6
您試過的輸入和輸出是什麼? – Lopan
首先,您需要在每次迭代中重置'sum = 0'。 –
@JohnnyMopp是的工作! –