新手,编了个求完全数程序,不能输出结果
大家看看有什么问题,程序能运行,但不能输出结果,好像是不能循环
main()
{
int x,n,i,s;
printf("input number\n");
scanf("%d",&n);
for(x=0;x<=n;x++)/*搜索所有小于n的完整数*/
{
for(i=0,s=0;i<x;i++)/*搜索x所有真因子,累加*/
{
if(x%i==0){s=s+i;}/*判断i是否整除x,假跳过,真进行累加*/
}
if(x==s){printf("%d\n",x);}/*判断s是否等于x,假跳过,真输出屏幕*/
}
}
[解决办法]
这个 你完全可以单步调试一下
[解决办法]
#include <stdio.h>void main(){int x,n,i,s;printf("input number\n");scanf("%d",&n);for(x=0;x<=n;x++) /*搜索所有小于n的完整数*/{for(i=0,s=0;i<x;i++) /*搜索x所有真因子,累加*/{if(x%i==0){s=s+i;} /*判断i是否整除x,假跳过,真进行累加*/ //这里i是0,不就错了,0不可以做除数}if(x==s){printf("%d\n",x);} /*判断s是否等于x,假跳过,真输出屏幕*/}}
[解决办法]
#include<stdio.h>
#include<stdlib.h>
main()
{
int x,n,i,s;
printf("input number\n");
scanf("%d",&n);
for(x=0;x<=n;x++) /*搜索所有小于n的完整数*/
{
for(i=2,s=0;i<x;i++) /*搜索x所有真因子,累加*/
{
if(x%i==0){s=s+i;} /*判断i是否整除x,假跳过,真进行累加*/
}
if(x==s){printf("%d\n",x);} /*判断s是否等于x,假跳过,真输出屏幕*/
}
system("pause");
}
[解决办法]
#include <stdio.h>main(){ int x,n,i,s; printf("input number\n"); scanf("%d",&n); for(x=0;x<=n;x++) /*搜索所有小于n的完整数*/ { for(i=0,s=0;i<x;i++) /*搜索x所有真因子,累加*/ { if(i&&(x%i)==0){s=s+i;} /*判断i是否整除x,假跳过,真进行累加*/ } if(x&&x==s){printf("%d\n",x);} /*判断s是否等于x,假跳过,真输出屏幕*/ }}