函数fun的功能是:判断整数n是否是“完数”。当一

函数fun()的功能是:判断整数n是否是“完数”。当一个数的因子之和恰好等于这个数本身时,就称这个数为“完数"。例如:6的因子包括1、2、3,而6=1+2+3,所以6是完数。如果是完数,函数返回值为1,否则函数返回值为0。

数组a中存放的是找到的因子,变量k中存放的是因子的个数。请改正函数fun中指定部位的错误,使它能得出正确的结果。

注意:不要改动main函数,不得增行或删行,也不得更改程序的结构。

#include <stdio.h>
#include <stdlib.h>
int fun(int n, int a[], int *k)
{
	int m=0, i, t;
	t=n;
	for(i=1; i<n; i++)
	{
		if(n%i==0)
		{
			a[m]=i;
			m++;
			t=t-i;
		}
	}
	/**********found**********/
	k=m;
	/**********found**********/
	if(t=0)
	{
		return 1;
	}
	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);
	}
	system("pause");
}


答案
第1空:*k=m;
第2空:if(t==0)

题目信息

题号:6689
题型:填空题
知识点:计算机二级
难度:普通