大佬帮忙看看 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;
}

c++
Csdn user default icon
上传中...
上传图片
插入图片
抄袭、复制答案,以达到刷声望分或其他目的的行为,在CSDN问答是严格禁止的,一经发现立刻封号。是时候展现真正的技术了!
立即提问
相关内容推荐