请教一编程题:关于数组排序问题的编程体题,题目如下,

来源:百度知道 编辑:UC知道 时间:2024/05/15 20:15:24
输入10个四位数,求出千位数上的数加百位数上的数等于十位数上加个位数上的数的个数CNT,再把所有满足此条件的四位数依次存入数组B中,然后对数组B的四位数安从大到小的顺序进行排序.

int i,j;
int iTmp;
int iCount;
int iNumA[100],iNumB[100];
for(i=0,j=0;i<10;i++)
if((iNumA[i]/1000+iNumA[i]%100/10)==(iNumA[i]%100/10+iNumA[i]%10)){
iNumB[j]=iNumA[i];
j++;
}
iCount=j;
for(i=0;i<iCount;i++)
for(j=1;j<iCount-1;j++)
if(iNumB[i]<iNumB[j]){
iTmp=iNumB[i];
iNumB[i]=iNum[j];
iNumB[j]=iTmp;
}
for(i=0;i<iCount;i++)
printf("%d\n",iNumB[i];

#include <stdio.h>
#define NUM_SIZE 10
void NumAnalysis(int pre_num,int * result)
/*将一个四位数各位上的数字分解出来后, 放在数组result中*/
{
int temp=pre_num;
int explorer=1000,i;
for(i=0;i<4;i++)
{
while(temp/explorer==0&&temp!=0)
{ explorer/=10;
result[i]=0;
i++;
}
/*获取各位数上的数字*/
if(!temp) result[i]=0;
result[i]=temp/explorer;