个十百千重新排列,符合条件的数大小排序问题:
把千位数字和十位数字重新组成一个新的十位数ab(新十位数的十位数字是原四位数的千位数字,新十位数的个位数字是原四位数的十位数字),以及把个位数字和百位数字组成另一个新的十位数cd(新十位数的十位数字是原四位数的个位数字,新十位数的个位数字是原四位数的百位数字),如果新组成的两个十位数ab>cd,ab必须是偶数且能被5整除,cd必须是奇数,同时两个新数的十位数字均不为零,则将满足此条件的四位数按从大到小的顺序存入数组b中,并要计算满足上述条件的四位数的个数cnt。
void jsVal()
{
int i,j,k,A,B,C,D;
for(i=0;i<MAX;i++)
{A=a[i]/1000;B=a[i]/10%10;C=a[i]%10;D=a[i]/100%10;
if(A!=0&&C!=0&&(B==0)&&(D%2!=0)&&(10*A>10*C+D))
b[cnt++]=a[i];
}
for(i=0;i<cnt-1;i++)
{k=i;
for(j=i+1;j<cnt;j++)
if(b[k]<b[j])k=j;
if(k!=i){A=b[k];b[k]=b[i];b[i]=A;}
}
}
责任编辑:小草