gpt4 book ai didi

c - 我需要帮助来查找此代码中的错误

转载 作者:行者123 更新时间:2023-11-30 21:05:11 24 4
gpt4 key购买 nike

我正在尝试制作一个C程序,以查找给定的数字是否为强数,但它不起作用。

我正在使用代码块,运行该程序后,当我输入要检查其强度是否不强的数字时,什么都不会发生!没有崩溃,没有错误,没有关闭cmd框没什么,我不知道我做错了什么。

 

#include <stdio.h>

int main(){

int i, j, k, n, m, x=1, y=0;

printf("Enter the number: ");
scanf(" %d", &n);
k=n;

for(i=n; i>=1; ) {
m=n%10;
for(j=m; j>=1; j--) {
x*=j;
}
y+=x;
n/=10;
}
if(y==k)
printf("number is strong");
else
printf("number is not strong");

return 0;
}

最佳答案

您应该遍历n的数字。每次循环时,都应将i除以10,而不是n

您还需要将每个数字的x重置为1。否则,您将新数字的阶乘乘以先前的阶乘。

for(i=n; i>=1; i/=10) {
m=i%10;
x = 1;
for(j=m; j>=1; j--) {
x*=j;
}
y+=x;
}


大多数 for循环的一般模式是:


初始化变量
测试那个变量
在循环内使用变量
更新该变量


有时,如果它只是一个计数器,则不使用该变量。但是在这里您确实需要使用它,因为它是您想要获取其最后一位数字的值。初始化 i然后更新 n不会遵循该模式。

关于c - 我需要帮助来查找此代码中的错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55948458/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com