gpt4 book ai didi

c - 控制流不超过第 45 行

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

问题如下。

Q) 开发一个函数 f1 来接受整数参数,反转数字并返回反转后的值。另外,开发另一个函数 f2 来接受两个整数参数 x 和 n 并返回 x 的 n 次方值。 f2 的返回值应传递给 f1,并且必须由另一个函数 f3 检查 f1 的返回值是否为素数。结果必须在程序中打印。

此代码中的控件不会超出第 45 行。我真的不知道这里的问题是什么,因为当我在代码块中运行代码时,输​​出屏幕显示 f2 的输出,然后它保持空闲状态。例如,如果我将输入指定为 8 和 2,则输出将返回值 81,然后除此之外不会执行任何操作。

    #include <stdio.h>
#include <math.h>
int f1(int npow)
{
int ret=0;
while (npow>0)
{
ret=(ret*10)+(npow%10);
}
return ret;
}
int f2(int x,int n)
{
int res;
res=pow(x,n);
return res;
}
int f3(int resrev)
{
int i,check;
for (i=2;i<resrev;i++)
{
if (resrev%i==0)
{
check =1;
break;
}
else
{
check=0;
break;
}
}
return check;
}
void main()
{
int resrev,x,n,npow,prime;
printf("Enter two numbers x and n\n");
scanf("%d %d",&x,&n);
npow=f2(x,n);
printf("x to the power n is %d\n",npow);
resrev=f1(npow);
printf("Reversed value of x to the power n is %d \n",resrev);
prime=f3(resrev);
if (prime==1)
printf("It is not a prime number \n");
else
printf("It is a prime number\n");
}

最佳答案

问题出在函数 f1 中。这是一个无限循环。

循环条件为直到npow>0,但您没有更新循环中npow的值。以下是更正后的代码:

int f1(int npow)
{
int ret=0;
while (npow>0)
{
ret=(ret*10)+(npow%10);
npow = npow/10;
}
return ret;
}

关于c - 控制流不超过第 45 行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60250978/

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