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 R语言Rstudio突然无法启动
    • ¥15 关于#matlab#的问题:提取2个图像的变量作为另外一个图像像元的移动量,计算新的位置创建新的图像并提取第二个图像的变量到新的图像
    • ¥15 改算法,照着压缩包里边,参考其他代码封装的格式 写到main函数里
    • ¥15 用windows做服务的同志有吗
    • ¥60 求一个简单的网页(标签-安全|关键词-上传)
    • ¥35 lstm时间序列共享单车预测,loss值优化,参数优化算法
    • ¥15 Python中的request,如何使用ssr节点,通过代理requests网页。本人在泰国,需要用大陆ip才能玩网页游戏,合法合规。
    • ¥100 为什么这个恒流源电路不能恒流?
    • ¥15 有偿求跨组件数据流路径图
    • ¥15 写一个方法checkPerson,入参实体类Person,出参布尔值