代码错误在哪?。。。求教大神

来源:4-10 循环结构之三种循环比较

木介街

2018-11-18 20:07

/*

问题描述:

已知整数a、b、c。你的任务是求出区间[a,b]内的整数,满足该数与“该数的所有因数(不包括本身但

包括1,1的因数和按0处理)相加之和”的差的绝对值小于等于c的数字。例如27的因数是1、3、9。那么27

与27的所有因数和的差为:27-(1+3+9)=14。


输入与输出要求:

输入三个整数a、b、c。a、b代表所求区间范围,满足1<=a<=b<=10000,c代表限制条件,c>=0。输出满足

条件的整数,每五个数为一行,整数之间用tab分隔,最后一个数后为换行符。当该区间没有符合条件的整

数时,输出“There is no proper number in the interval.”


程序运行效果:

Sample 1:

1 10000 0↙

6          28        496       8128↙

Sample 2:

2000 5000 4↙

2048    2144     4030     4096↙

Sample 3:

900 1000 0↙

There is no proper number in the interval.↙

*/


#include<stdio.h>

#include<math.h>

int main()

{

int a,b,c,n;//定义变量,a<=n<=b

scanf("%d %d %d",&a,&b,&c);

n=a;

int sum;//sum为因数之和

while(n<=b)

{

sum=0;//因数之和初始值为零 

int factor;//factor为因数

factor=1;//定义因数初始值 

while(factor<n)//穷举求出n所有因数 

{

if(n%factor==0)//判断factor是否为n的因数 

sum+=factor;//如果是,则求和 

factor++;//factor自加 

}

int difference,flag=0;//difference为sum与n的差值,flag控制一行最多五个数 

difference=sum-n;

if(fabs(difference)<=c)//判断difference是否小于c 

{

printf("%d\t",n);//输出符合条件的n 

flag++;

}

if(flag%5==0)//每五个数换行 

printf("\n");

while(n==b)

{

if(flag==0)//最终没有数,则输出语句: 

{

printf("There is no proper number in the interval.");

  }

}

n++;

}

printf("\n");

return 0; 

}


写回答 关注

1回答

  • 慕斯卡1553971
    2019-08-03 20:00:00
    #include<stdio.h>#include<math.h>int main(){	int a,b,c,n;//定义变量,a<=n<=b	scanf("%d %d %d",&a,&b,&c);	n=a;	int sum;//sum为因数之和	int factor;//factor为因数	int difference,flag=0;//difference为sum与n的差值,flag控制一行最多五个数 	while(n<=b)	{		sum=0;//因数之和初始值为零 		factor=1;//定义因数初始值 		while(factor<n)//穷举求出n所有因数 		{			if(n%factor==0)//判断factor是否为n的因数 			sum+=factor;//如果是,则求和 			factor++;//factor自加 		}		difference=sum-n;		if(fabs(difference)<=c)//判断difference是否小于c 		{			printf("%d\t",n);//输出符合条件的n 			flag++;		}		if(flag%5==0&&flag!=0)//每五个数换行 			printf("\n");		if(n==b)		{			if(flag==0)//最终没有数,则输出语句: 			{			printf("There is no proper number in the interval.");  			}		}		n++;		}	printf("\n");	return 0; }


    慕斯卡155...

    复制过来没有换行。。

    2019-08-03 20:01:47

    共 1 条回复 >

C语言入门

C语言入门视频教程,带你进入编程世界的必修课-C语言

926866 学习 · 21014 问题

查看课程

相似问题