扶光_43T 2023-08-20 12:33 采纳率: 16.7%
浏览 7
已结题

关于#c语言#的问题,请各位专家解答!(相关搜索:水仙花数)

#include<stdio.h>
#include<math.h>

int main()
{

int a,num_init,num;

printf("请输入水仙花数产生的下限值:");
num_init = scanf(" %d", &num_init);
printf("请输入水仙花数产生的上限值:");
a = scanf("%d",&a);
num = num_init;


    do {
    int num_th = num % 10;
    int num_sec = (num / 10) % 10;
    int num_fir = num / 100;

        if (num == pow(num_th, 3) + pow(num_sec, 3) + pow(num_fir, 3))
        {

        printf("%d是一个%d到%d之间的水仙花数\n", num, num_init, a);

        }
        num++;
    } while (num <a);



return 0;

}

为什么终端是1是从1到1的水仙花数呢

  • 写回答

3条回答 默认 最新

  • CSDN-Ada助手 CSDN-AI 官方账号 2023-08-20 14:07
    关注

    【以下回答由 GPT 生成】

    首先,我们来观察代码中的问题所在。

    问题代码段为:

    int a,num_init,num;
    
    printf("请输入水仙花数产生的下限值:");
    num_init = scanf(" %d", &num_init);
    printf("请输入水仙花数产生的上限值:");
    a = scanf("%d",&a);
    num = num_init;
    
    ... ...
    
    } while (num < a);
    

    在这段代码中,我们可以看到以下问题: 1. 变量anum_init以及变量numnum_init在赋值的过程中存在重复使用。这会导致变量num_inita的值无法得到正确赋值。 2. scanf()函数的返回值赋值给了变量num_inita,这是错误的。scanf()函数返回成功读取的项数,而不是读取的具体值。

    为了解决这些问题,我们需要进行符合问题要求的修改。

    首先,我们应该将变量的命名改为更具有描述性的名称,以方便理解。

    一种解决方案如下所示:

    #include<stdio.h>
    #include<math.h>
    
    int main()
    {
        int lower_limit, upper_limit, num;
    
        printf("请输入水仙花数产生的下限值:");
        scanf("%d", &lower_limit);
        printf("请输入水仙花数产生的上限值:");
        scanf("%d", &upper_limit);
    
        num = lower_limit;
    
        do {
            int num_th = num % 10;
            int num_sec = (num / 10) % 10;
            int num_fir = num / 100;
    
            if (num == pow(num_th, 3) + pow(num_sec, 3) + pow(num_fir, 3)) {
                printf("%d是一个%d到%d之间的水仙花数\n", num, lower_limit, upper_limit);
            }
    
            num++;
        } while (num <= upper_limit);
    
        return 0;
    }
    

    在这个修复过的代码中,我们先将变量lower_limitupper_limit分别用于接收下限和上限的输入值,并使用scanf()函数正确地将输入值赋给这两个变量。

    接着,在循环中,我们将条件更改为num <= upper_limit,以保证在给定的范围内能够正确输出水仙花数。

    最后,我们将输出语句中使用的变量名也进行了修改,以便更好地描述输出结果。

    这样,修复后的代码应该能够正常输出给定范围内的水仙花数。



    【相关推荐】



    如果你已经解决了该问题, 非常希望你能够分享一下解决方案, 写成博客, 将相关链接放在评论区, 以帮助更多的人 ^-^
    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(2条)

报告相同问题?

问题事件

  • 系统已结题 9月9日
  • 已采纳回答 9月1日
  • 创建了问题 8月20日

悬赏问题

  • ¥15 js调用对象时报错,但是我看是有这个对象的,是不是调用方法不对
  • ¥15 希沃零度软件界面按钮传参分析
  • ¥15 可任意设置即使长度的倒计时器电路设计
  • ¥15 MusePose 部署安装问题,安装后无法启动
  • ¥15 Psexec获得电脑system权限该怎么操作,有偿
  • ¥50 python+flask实现流式api接口的问题
  • ¥20 关于#vue.js#的问题:后端返回的代码如下,根据后端返回的数据在页面上重新展示
  • ¥15 visual studio 社区版离线激活失败了
  • ¥15 Flask应用部署到阿里云服务器失败,无法访问网页,问题出在哪里?
  • ¥15 有什么好的直流步进减速电机42的厂家推荐,保持力矩达到0.3N.M