问题遇到的现象和发生背景 输入数据有多组,每组占一行,包括两个整数m和n(100<=m<=n<=999),对于每个测试实例,要求输出所有在给定范围内的水仙花数,就是说,输出的水仙花数必须大于等于m,并且小于等于n,如果有多个,则要求从小到大排列在一行内输出,之间用一个空格隔开;
如果给定的范围内不存在水仙花数,则输出no;
每个测试实例的输出占一行。
问题相关代码,请勿粘贴截图
#include<stdio.h>
#include<stdlib.h>
#include<string.h>
#include<math.h>
int main()
{
int m,n,i,c=0;
while(scanf("%d %d",&m,&n)!=EOF){
int *a=(int *)malloc(sizeof(int)*(n-m+1));
memset(a,0,sizeof(int)*(n-m+1));
a[0]=m;
for(i=1;i<n-m+1;i++){
a[i]=a[i-1]+1;
if(a[i]==pow(a[i]%100,3)+pow(a[i]/10,3)+pow(a[i]%10/10,3)){
printf("%d ",a[i]);
c++;
}
}
if(c=0)printf("no");
else printf("\n");
}
return 0;
}