fuze11 发表于 2020-5-29 15:43:03

求大神看看

#include <stdio.h>
int facsum(int m)
{
int sum=1,f=2;
while(f<=m/2)
{
        if(m%f==0)
        {
                sum=sum+f;
                f=f+1;
        }
        else
        {
                f=f+1;
        }
        return sum;
}
void main()
{这个
        int m=3,n,k;
        while(m<=500)
        {
                n=facsum(m);
                k=fascum(n);
                if(m==k&&m<=n)
                {
                        printf("%d%d",m,n);
                }
                else
                {
                        m=m++;
                }
        }

} 和这个      他怎么说我括号错了呢

fuze11 发表于 2020-5-29 15:43:47

图片我发不过来,太大了

永恒的蓝色梦想 发表于 2020-5-29 15:46:16

fuze11 发表于 2020-5-29 15:43
图片我发不过来,太大了

拿……代……码……格……式……发……

小甲鱼的铁粉 发表于 2020-5-29 15:49:25

这个程序的目的是什么呢

小甲鱼的铁粉 发表于 2020-5-29 15:51:23

你说一下程序的目的,这样容易找错误

fuze11 发表于 2020-5-29 15:52:01

永恒的蓝色梦想 发表于 2020-5-29 15:46
拿……代……码……格……式……发……

哥,我不会啊。。我可以把那个错误发过来

fuze11 发表于 2020-5-29 16:01:55

好了

fuze11 发表于 2020-5-29 16:04:13

小甲鱼的铁粉 发表于 2020-5-29 15:51
你说一下程序的目的,这样容易找错误



本实验旨在使学生掌握模块化程序设计的方法,
增强程序设计能力。在这个实验中,学生将学习
C语言中定义函数的方法;
通过“值传递”调用函数的方法。
2.问题描述
若正整数A的所有因子(包括1但不包括自身,下同)之和为B,而B的因子之和为A,则称A和B
为一对亲密数。例如,6的因子之和为1+2+3=6,因此6与6为-对亲密数(即6自身构成亲密数);又如,220的因子之和为1+2+4+5+10+11+20+22+44+55+110=284,而284的因子之为1+2+4+71+142-220,因此,220 与284为一对亲密数。
求500以内的所有亲密数对。
具体要求如下。
(1)编制一个函数facsum(m),返回给定正整数m的所有因子(包括1但不包括自身)之和
(2)编制一个主函数,调用(1)中的函数facsum0. 寻找并输出500以内的所有杀密数对。
(3)输出要有文字说明。在输出每对亲密数时,要求从小到大排列并去掉重复的亲密数对。
(4)所有函数中的循环均采用for循环。程序流程图如图6-5所示。

fuze11 发表于 2020-5-29 16:04:54

小甲鱼的铁粉 发表于 2020-5-29 15:49
这个程序的目的是什么呢

发了,请大神看看怎么回事

永恒的蓝色梦想 发表于 2020-5-29 16:20:28

fuze11 发表于 2020-5-29 15:52
哥,我不会啊。。我可以把那个错误发过来

你发错误也没用啊,按 <> 发代码

fuze11 发表于 2020-5-29 16:24:18

永恒的蓝色梦想 发表于 2020-5-29 16:20
你发错误也没用啊,按发代码

哥,代码不是在上面吗

阡-陌 发表于 2020-5-29 16:29:16

看着似乎没啥毛病

xiaosi4081 发表于 2020-5-29 16:30:12

本帖最后由 xiaosi4081 于 2020-5-29 16:31 编辑

少了个右括号
#include <stdio.h>
int facsum(int m)
{
int sum=1,f=2;
while(f<=m/2)
{
      if(m%f==0)
      {
                sum=sum+f;
                f=f+1;
      }
      else
      {
                f=f+1;
      }
}
      return sum;
}
void main()
{
      int m=3,n,k;
      while(m<=500)
      {
                n=facsum(m);
                k=fascum(n);
                if(m==k&&m<=n)
                {
                        printf("%d%d",m,n);
                }
                else
                {
                        m=m++;
                }
      }

}

fuze11 发表于 2020-5-29 16:45:44

xiaosi4081 发表于 2020-5-29 16:30
少了个右括号

谢谢大神,但好像还有错误

xiaosi4081 发表于 2020-5-29 16:46:55

fuze11 发表于 2020-5-29 16:45
谢谢大神,但好像还有错误

什么错误?

fuze11 发表于 2020-5-29 16:48:28

这个

xiaosi4081 发表于 2020-5-29 16:49:00

本帖最后由 xiaosi4081 于 2020-5-29 16:51 编辑

你拼错了吧
#include <stdio.h>
int facsum(int m)
{
int sum=1,f=2;
while(f<=m/2)
{
      if(m%f==0)
      {
                sum=sum+f;
                f=f+1;
      }
      else
      {
                f=f+1;
      }
}
      return sum;
}
int main()
{
      int m=3,n,k;
      while(m<=500)
      {
                n=facsum(m);
                k=facsum(n);
                if(m==k&&m<=n)
                {
                        printf("%d%d",m,n);
                }
                else
                {
                        m=m++;
                }
      }
      return 0;
}

fuze11 发表于 2020-5-29 16:49:49

xiaosi4081 发表于 2020-5-29 16:46
什么错误?

是你的19行和25行

fuze11 发表于 2020-5-29 16:55:51

xiaosi4081 发表于 2020-5-29 16:49
你拼错了吧

谢谢大神
页: [1]
查看完整版本: 求大神看看