C语言题帮忙做一下

来源:百度知道 编辑:UC知道 时间:2024/06/15 18:58:58
定义数组a有20个元素,并输入四位正整数:
1.将四位数各位上的数字均是0或2或4或6或8的四位数存入数组b中,统计出满足条件的个数cnt,并对数组b中的数按由大到小排列。

#include<stdio.h>

//取4位数的数组元素的个位数
int digit(int unit)
{
unit=unit%1000; //例如 1111%1000 余111
unit=unit%100; //111%100 余11
unit=unit%10; //11%10 余1
return unit; //返回个位数
} //digit

//数组B按大到小排列
void sort(int array[ ], int num)
{
int i, j, temp;
for(i=0;i<num;i++) //排序
for(j=i+1;j<num;j++)
if(array[i] < array[j]) //把小的数忘后移
{
temp=array[i];
array[i]=array[j];
array[j]=temp;
}
} //sort

//主函数
int main(void)
{
int array_a[20]={1111, 2222, 3333, 4444, 5555, 6666, 7777, 8888, 9999, 1234,
1222, 1233, 1244, 1244, 1588, 1699, 1287, 1956, 1587, 2586};
int array_b[20];
int i, j=0, k;
for(i=0;i<20;i++)
{
k=digit(array_a[i]); //取得个位数
if(k==0 || k==2 || k==4 || k==6 || k==8) //判断是否满足条件
{
array_b[j++]=array_a[i]; //把满足条件的元素放入数组b,然后j+1
}
}

sort(