題目:使用函數(shù)輸出指定范圍內(nèi)的完數(shù):輸入兩個(gè)正整數(shù)m和n(1<=m,n<=1000),輸出m與n之間的完數(shù),完數(shù)就是因子和它本身相等的數(shù)。要求定義并調(diào)用函數(shù)factorsum(number),它的功能是返回number的因子和。例如:factorsum(12)的返回值是16(1+2+3+4+6)。#include<stdio.h>int factorsum(int i);int main(){ int n,m,i,count; printf("Enter m,n:"); scanf("%d%d",&m,&n); if(m>n){ printf("please again!\n"); } printf("Enter m,n:"); scanf("%d%d",&m,&n); if(m<n){ for(i=m;i<=n;i++){ factorsum(i); if(count==i){ printf("%d\n",i); } } } return 0;}int factorsum(int i){ int j,count; count=0; for(j=1;j<=i/2;j++){ if(i%j==0){ count=count+j; } } return count;}但是結(jié)果顯示Enter m,n:6 3please again!Enter m,n:3 63456Press any key to continue這樣顯然不對(duì),最小的一個(gè)完數(shù)應(yīng)該是6,他應(yīng)該只輸出6.還有count是不是定義有問(wèn)題?很糾結(jié),能幫忙說(shuō)一下問(wèn)題出在哪里以及怎么改嗎?謝謝!
- 1 回答
- 0 關(guān)注
- 2894 瀏覽
添加回答
舉報(bào)
0/150
提交
取消