给定程序MODI1.C中,函数fun的功能是判断整数n是否是“完数”。当一个数的因子之和恰好等于这个数本身时,就称这个数为“完数”。例如:6的因子包括1、2,3,而6=1+2+3,所以6是完数。如果是完数,函数返回值为1,否则函数返回值为0。数组a中存放的

admin2016-04-07  29

问题 给定程序MODI1.C中,函数fun的功能是判断整数n是否是“完数”。当一个数的因子之和恰好等于这个数本身时,就称这个数为“完数”。例如:6的因子包括1、2,3,而6=1+2+3,所以6是完数。如果是完数,函数返回值为1,否则函数返回值为0。数组a中存放的是找到的因子,变量k中存放的是因子的个数。
    请改正函数fun中指定部位的错误,使它能得出正确的结果。
    注意:不要改动main函数,不得增行或删行,也不得更改程序的结构。
    试题程序:
    #include   
    int fun(int n,int a¨,int*k)
    {  int m=0,i,t;  
    {   
    t=n;
    /**********found**********/  
    for(i=0;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);
    printf("\n");
    }
    else printf("%d不是完数.\n",n);
    }

选项

答案(1)for(i=0;i
解析 (1)for(i=0;i  (2)k=m改为*k=m,k为指针不能直接赋值整数,* k为指针指向的内容。
  (3)if(t=0)改为if(t=0),括号内应为判断语句而不是赋值语句。
转载请注明原文地址:https://kaotiyun.com/show/1tDp777K
0

最新回复(0)