求大神看看
#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
图片我发不过来,太大了
拿……代……码……格……式……发…… 这个程序的目的是什么呢
你说一下程序的目的,这样容易找错误 永恒的蓝色梦想 发表于 2020-5-29 15:46
拿……代……码……格……式……发……
哥,我不会啊。。我可以把那个错误发过来 好了 小甲鱼的铁粉 发表于 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所示。
小甲鱼的铁粉 发表于 2020-5-29 15:49
这个程序的目的是什么呢
发了,请大神看看怎么回事 fuze11 发表于 2020-5-29 15:52
哥,我不会啊。。我可以把那个错误发过来
你发错误也没用啊,按 <> 发代码 永恒的蓝色梦想 发表于 2020-5-29 16:20
你发错误也没用啊,按发代码
哥,代码不是在上面吗 看着似乎没啥毛病 本帖最后由 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++;
}
}
} xiaosi4081 发表于 2020-5-29 16:30
少了个右括号
谢谢大神,但好像还有错误 fuze11 发表于 2020-5-29 16:45
谢谢大神,但好像还有错误
什么错误? 这个 本帖最后由 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;
} xiaosi4081 发表于 2020-5-29 16:46
什么错误?
是你的19行和25行 xiaosi4081 发表于 2020-5-29 16:49
你拼错了吧
谢谢大神
页:
[1]