用c语言求完数,以下是原题:编写程序,输入数据范围,输出该范围之内的所有完数及其个数

运行处的结果应为:input2integertodeterminetherange.10200028496count=2以下是我编的:#include<stdio.h>i... 运行处的结果应为:
input 2 integer to determine the range.
10 2000
28 496
count=2
以下是我编的:
#include<stdio.h>
int main(void)
{
int i,j,count=0;
int n1,n2,s=0;
printf("Input 2 integer to determine the range.\n");
scanf("%d %d",&n1,&n2);

for(i=n1;i<n2;i++)
{
for(j=1;j<i;j++)
{
if(i%j==0)
{
count++;
s+=j;
}
}
if(s=i)
{
printf("%d",i);
}
}
printf("count=%d",count);
return 0;
}
我怎么运行不出来?
展开
 我来答
帖承德qv
推荐于2017-12-16 · TA获得超过645个赞
知道小有建树答主
回答量:95
采纳率:100%
帮助的人:75.6万
展开全部

根据你的代码改的:

 

#include<stdio.h>

int main(void)

 int i,j,count=0;

 int n1,n2,s=0; 

 printf("Input 2 integer to determine the range.\n"); 

 scanf("%d %d",&n1,&n2); 

 for(i=n1;i<n2;i++)

 {

  s=0;                  //s是用来判断当前i是否为完数,所以每次开始要置为零

  for(j=1;j<i;j++)

  {   

   if(i%j==0) 

   { 

///////////     count++;       //你是打算对是完数的计数,不应该在这写

    s+=j; 

   }

  }

  if(s==i)               //c语言的等于判断是==,=是赋值的意思

  { 

   printf("%d  ",i);  //把输出的数用空格符隔开,你才能看出来噻

   count++;           //这里才满足完数的条件,才该计数

  }

 }

 printf("\ncount=%d\n",count); 

 return 0;

}

 

我的运行结果是:

 

 

修改你的代码:

来自:求助得到的回答
马拉古城
2012-12-22 · TA获得超过239个赞
知道小有建树答主
回答量:156
采纳率:0%
帮助的人:139万
展开全部
我刚刚看了一下完数的定义,你还有个地方错了,count++;你放错位置了,应该放在 if(s==i)的语句当中
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
那天小雨天
2012-12-23 · 超过32用户采纳过TA的回答
知道答主
回答量:154
采纳率:0%
帮助的人:61.7万
展开全部
#include<stdio.h>
int main(void)
{
int i,j,count=0;
int n1,n2,s=0;
printf("Input 2 integer to determine the range.\n");
scanf("%d %d",&n1,&n2);

for(s=0,i=n1;i<n2;i )//这里
{
for(j=1;j<i;j )
{
if(i%j==0)
{
s =j;
}
}
if(s=i)
{
count ;//这里
printf("%d",i);
}
}
printf("count=%d",count);
return 0;
}

你试试,我是手机改的,符号可能没打好
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(1)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式