Muchangxian 2021-10-30 20:13 采纳率: 100%
浏览 693
已结题

c语言各位数字的立方和等于本身

问题 J: 调用函数,判断各位数字立方和是否等于它本身

题目描述

自定义函数is(number)判断number的各位数字立方和是否等于它本身,如is(121)返回值0,is(153)返回值1。 主函数输入两个正整数m和n(m>=1, n<=1000),输出m-n之间的所有满足各位数字和等于它本身的数。
输入

多组测试数据,每组输入两个正整数m和n(m>=1, n<=1000)。
输出

输出m-n之间的所有满足各位数字立方和等于它本身的数,空格隔开(最后一个数后无空格)。
样例输入 Copy

1 100
50 200
50 500

样例输出 Copy

1
153
153 370 371 407

代码

#include <stdio.h>
int is(int a);
int main(void)
{
    int m,n,i,x;
    while((scanf("%d%d",&m,&n)!=EOF)&&(m>=1)&&(n<=1000))
    {
        x=1;
        for(i=m;i<=n;i++){if(i==is(i)){
                          if(x!=0){printf("%d",i);x=0;}
                         else{printf(" %d",i);}}}
        printf("\n");}
        return 0;}
int is(int a)
{   int b,c,d,e;
    b=a%10;
    c=(a/10)%10;
    d=a/100;
    e=b*b*b+c*c*c+d*d*d;
    return e;}

输出应该是完全正确的,但是就是给我错误,然后网上粘贴了个答案

#include<stdio.h>
#include<math.h> 
int is(int number)//定义函数 
{
    int s,sum=0;
    while(number!=0)
    {
        s=number%10;
        sum=sum+pow(s,3);
        number=number/10;
    }
    return sum;
}

int main(void)//主函数 
{
    int m,n,k,flag;
    while(scanf("%d %d",&m,&n)!=EOF)
    {
        m>=1&&n<=1000;
        flag=1;
        for(k=m;k<=n;k++)
        {
            if(k==is(k))
            {
                if(flag!=0)//解决最后一个数后无空格 
                {
                    printf("%d",k);
                    flag=0;
                }
                else
                printf(" %d",k);
            }
        }
        printf("\n");
    }
    return 0;
} 

这个就对了,我完全不理解。我的有什么问题吗。不用数学函数不行吗。人已经快气晕了。

  • 写回答

1条回答 默认 最新

  • aabyte 2021-10-30 20:19
    关注

    img


    用你的测得 在1000这里错了

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论

报告相同问题?

问题事件

  • 系统已结题 11月7日
  • 已采纳回答 10月30日
  • 创建了问题 10月30日

悬赏问题

  • ¥15 Vue3 大型图片数据拖动排序
  • ¥15 划分vlan后不通了
  • ¥15 GDI处理通道视频时总是带有白色锯齿
  • ¥20 用雷电模拟器安装百达屋apk一直闪退
  • ¥15 算能科技20240506咨询(拒绝大模型回答)
  • ¥15 自适应 AR 模型 参数估计Matlab程序
  • ¥100 角动量包络面如何用MATLAB绘制
  • ¥15 merge函数占用内存过大
  • ¥15 使用EMD去噪处理RML2016数据集时候的原理
  • ¥15 神经网络预测均方误差很小 但是图像上看着差别太大