Leon_li_li 2020-04-05 18:32 采纳率: 50%
浏览 289

大佬帮忙看看 C++的 我编写的验证磁力数的程序,程序没有报错且能够运行,但是显示窗口没有产生它该有的东西(主要是三位数的磁力数,四位数没问题)???

#include
#include
using namespace std ;
int getbits(int n)
{
if (n>=100&&n<=999) {return 3;}
else return 4;
}
void split (int a[],int n, int k)
{

if (n==999){a[0]=0;a[1]=9;a[2]=9;a[3]=9;}
if (n==99 ){a[0]=0;a[1]=9;a[2]=9;}
if (k==3)
{ a[0]=n/100;a[1]=(n/10)%10;a[2]=n%10;}
if (k==4)
{ a[0]=n/1000;a[1]=(n/100)%10;a[2]=(n/10)%10;a[3]=n%10;}
}
void sortd(int a[],int k)
{
int i,j,p,t;
i=0;
for (i=0;i<k-1;i++)
{ p=i;
for (j=i+1;j<k;j++)
if (a[j]<a[p]) p=j;
if (p!=i)
{t=a[p];a[p]=a[i];a[i]=t;}
}}
void reverse (int a[] , int k)
{
int x,y;
for (x=0;x<k/2;x++)
{ y=a[x];
a[x]=a[k-1-x];
a[k-1-x]=y;
}
}
int combine (int a[] , int k)
{
int s;
if (k==3)
{ s=a[0]*100+a[1]*10+a[3];}
if (k==4)
{ s=a[0]*1000+a[1]*100+a[2]*10+a[3];}
return s;

}
int main()
{
int oldn,n,k,a[10],n1,n2;
oldn=0;
cout<<"输入一个三位数或者四位数,但是各位数字不能相同"< cin>>n;
k=getbits(n);
while (n!=oldn)
{
oldn=n;
split(a,n,k);
sortd(a,k);
n1=combine(a,k);
reverse(a,k);
n2=combine(a,k);
n=n2-n1;
cout<<n2<<"-"<<n1<<"="<<n<<endl;
}
return 0;
}

  • 写回答

0条回答

    报告相同问题?

    悬赏问题

    • ¥15 请教一下各位,为什么我这个没有实现模拟点击
    • ¥15 执行 virtuoso 命令后,界面没有,cadence 启动不起来
    • ¥50 comfyui下连接animatediff节点生成视频质量非常差的原因
    • ¥20 有关区间dp的问题求解
    • ¥15 多电路系统共用电源的串扰问题
    • ¥15 slam rangenet++配置
    • ¥15 有没有研究水声通信方面的帮我改俩matlab代码
    • ¥15 ubuntu子系统密码忘记
    • ¥15 保护模式-系统加载-段寄存器
    • ¥15 电脑桌面设定一个区域禁止鼠标操作