|
马上注册,结交更多好友,享用更多功能^_^
您需要 登录 才可以下载或查看,没有账号?立即注册
x
- #include <stdio.h>
- int fun()
- {
- int i,j,s,sum=0;
- for(j=2;j<1000;j++)
- {
- s=j;
- for(i=1;i<j;i++)
- {
- if((j%i)==0)
- {
- s=s-i;
- }
- }
- if(s==0)
- {
- sum=sum+j;
- }
- return sum;
- }
- void NONO ()
- {/* 本函数用于打开文件,输入数据,调用函数,输出数据,关闭文件。 */
- FILE *wf ;
- int a;
- wf = fopen("out.dat","w") ;
- a=fun() ;
- fprintf(wf, "2-1000之间的完数之和为:%d\n", a) ;
- }
- int main( )
- {
- printf("2-1000之间的完数之和为:%d\n",fun());
- NONO ();
- return 0;
- }
复制代码
用fun函数计算1000以内的所有完数之和,运行不了,请问代码哪里错了?
谢谢
你判断的语句写到for循环外面了
- #include <stdio.h>
- int fun()
- {
- int i,j,s,sum=0;
- for(j=2;j<1000;j++)
- {
- s=j;
- for(i=1;i<j;i++)
- {
- if((j%i)==0)
- {
- s=s-i;
- }
- }
- if(s==0)
- {
- sum=sum+j;
- }
- }
- return sum;
- }
- void NONO ()
- {/* 本函数用于打开文件,输入数据,调用函数,输出数据,关闭文件。 */
- FILE *wf ;
- int a;
- wf = fopen("out.dat","w") ;
- a=fun() ;
- fprintf(wf, "2-1000之间的完数之和为:%d\n", a) ;
- }
- int main( )
- {
- printf("2-1000之间的完数之和为:%d\n",fun());
- NONO ();
- return 0;
- }
复制代码
|
|