m0_51209541 2021-01-04 22:02 采纳率: 100%
浏览 4
已采纳

为什么会出现这种情况

#include <iostream>
#include <cmath>
using namespace std;
int isprime(int n)
{
    for(int i=2;i<sqrt(n);i++)
    {
        if(n%i==0)
        {
            return 0;
        }
    }
    return 1;

}
int ishw(int n)
{
    int x=n;
    int k[10];
    int i=0;
    while(x!=0)
    {
        k[i]=x%10;
        x=x/10;
        i++;
    }
    int t=0;
    while(i!=-1)
    {
        x=x+k[t]*pow(10,(i-1));
        i--;
        t++;
}
if(x==n)
{return 1;
}
return 0;
}
int main()
{
    int n;
    cin>>n;
    cout<<isprime(n);
    cout<<ishw(n);
    if(isprime(n)==1&&ishw(n)==1)
    {
    cout<<"wow";
    }else
    {cout<<"no";
    }
}

  • 写回答

2条回答 默认 最新

  • 云中小筑 2021-01-04 22:45
    关注

    红框处的判断次数多了一次,以你输入的11为例,前面的运算得到的i值为2,如果以i!=-1为判断条件,则循环将执行3次,由于数组k没有初始化,那么k[2]的值就是随机的,那么同样的参数,每次结果都可能不一样。

    解决办法:

    第一种:将红框处的判断条件改为i!=0

    第二种:将数组k初始化为0,即int k[10] = {0};

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(1条)

报告相同问题?

悬赏问题

  • ¥15 HFSS 中的 H 场图与 MATLAB 中绘制的 B1 场 部分对应不上
  • ¥15 如何在scanpy上做差异基因和通路富集?
  • ¥20 关于#硬件工程#的问题,请各位专家解答!
  • ¥15 关于#matlab#的问题:期望的系统闭环传递函数为G(s)=wn^2/s^2+2¢wn+wn^2阻尼系数¢=0.707,使系统具有较小的超调量
  • ¥15 FLUENT如何实现在堆积颗粒的上表面加载高斯热源
  • ¥30 截图中的mathematics程序转换成matlab
  • ¥15 动力学代码报错,维度不匹配
  • ¥15 Power query添加列问题
  • ¥50 Kubernetes&Fission&Eleasticsearch
  • ¥15 報錯:Person is not mapped,如何解決?