You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何让Armstrong数判断程序运行结束后自动请求新数字

实现可重复判断Armstrong数的程序

要让程序支持重复输入并判断,核心是用循环包裹核心逻辑,同时每次循环重置状态变量、添加用户选择是否继续的交互。以下是修改后的代码:

#include <stdio.h>

int main()
{
    char choice;
    do {
        int numDgt, number, rem, mul = 1, cnt, result = 0;

        printf("Enter a number : ");
        scanf("%d", &number);

        int n = number;
        numDgt = 0;
        while (n != 0)
        {
            n = n / 10;
            numDgt++;
        }
        cnt = numDgt;
        n = number;

        while (n != 0)
        {
            rem = n % 10;
            while (cnt != 0)
            {
                mul = mul * rem;
                cnt--;
            }
            result = result + mul;
            cnt = numDgt;
            n = n / 10;
            mul = 1;
        }

        if (result == number)
        {
            printf("%d is an Armstrong number.\n", number);
        }
        else
        {
            printf("%d is not an Armstrong number.\n", number);
        }

        printf("Do you want to check another number? (y/n): ");
        scanf(" %c", &choice); // 空格用于跳过输入数字后残留的换行符
    } while (choice == 'y' || choice == 'Y');

    return 0;
}

修改要点:

  • 外层使用do-while循环:确保程序至少执行一次判断逻辑,之后根据用户输入的y/Y决定是否继续循环。
  • 变量内部初始化:将result、mul等状态变量放到循环内部,每次循环都会重新赋值,避免上次运行的残留值干扰判断结果。
  • 添加续询交互:每次判断结束后询问用户是否继续,通过字符输入控制循环走向,scanf中的空格用于规避输入数字后遗留的换行符导致的无效读取问题。

内容的提问来源于stack exchange,提问作者AmineDELTA

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.07 22:34:56