fun函数主要功能是:是判断整数n 是否是“完数”。当一个数的因子之和恰好等于这个数本身时,就称这个数为“完数”。

#include <stdio.h>
int fun(int n,int a[],int *k)
{int m=0,i,t;
 t=n;
/**********found**********/
 for(i=0;i<n;i++)//fun()函数的for循环中,这里的循环的就是输入数字n的因式,0不可能是其他整数的因式,也没有意义。所以这里应该将“i = 0”改为”i = 1”。
   if(n%i==0)
  {a[m]=i;m++;t=t-i;}
/**********found**********/
  k=m;//fun()函数中的参数是*k,也就是说k只是一个指针变量,而不是我们所需要的因子个数的变量,所以这里我们应该使用的是*k
/**********found**********/
 if(t=0) return 1;//在if条件语句中,等于号应该是“==”,而不是普通的“=”
  else return 0; 
}
main()
{int n,a[10],flag,i,k;
printf("请输入一个整数: ");  scanf("%d",&n);
 flag=fun(n,a,&k);
 if(flag)
 {printf("%d是完数,其因子是: ",n);
for(i=0;i<k;i++) 
printf(" %d ",a[i]);
printf("\n");
 }
 else
printf(" %d 不是完数.\n",n);
}

  • 0
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值