帮忙看下简单的C语言数组的实现问题!!
//5968 ab=56 cd=89 千位和个位不为零编程序实现,其功能是:把千位数字和十位数字重新组成一个新的含有两位数字的数
ab(新数的十位数字是原四位数的千位数字,新数的个位数字是原四位数的十位数字),以及把个位数字
和百位数字组成另一个新的含有两位数字的数cd(新数的十位数字是原四位数的个位数字,新数的个位数
字是原四位数的百位数字),如果新组成的两个位数ab>cd,ab必须是偶数且能被5整除,cd必须是奇数,
同时两个新数的十位数字均不为零,则将满足此条件的四位数按从大到小的顺序存入数组b中,并要计
算满足上述条件的四位数的个数cnt。
现在我没排序,直接就输出来要求的数,但是有问题,求教!!!
#include <stdio.h>
#define N 10000
#define M 5000
int main()
{
int b[M];
int i,j,a1,a2,a3,a4,b1,b2;
int k;
for (i=1001,j=0;i<N;i++)
{
a1=i/1000;
a2=i%1000/100;
a3=i%100/10;
a4=i%10;
b1=a1*10+a3;
b2=a4*10+a2;
while(a4!=0 && b1>b2 && i!=N-1)
{
if(b1 % 2==0 && b1 % 5==0 && b2 % 2==1)
b[j]=i;
j++;
}
}
for (k=0;k<j;k++)
{
printf("%d ",b[k]);
}
return 0;
}