C语言一道程序题
编写一个程序使8*7的二维数组的奇数进行升序,偶数进行降序排列(从第0行开始算起)
答案:#include <stdio.h>
void swap(int a,int b); //函数声明
int main()
{
int a[8][7]={
{12,63,23,89,123,4,56},
{51,55,48,61,1687,6,29},
{12,5,786,24,860,527,2},
{7,89,613,17,86,14,83},
{9,624,78,61,76,624,93},
{85,62,47,9,62,17,9054},
{127,49,62,54,42,5,876},
{78,9,247,61,490,2,43}
}
int i,j,k=0,l=0;
int *odd,*eve;
//下面将二维数组分奇偶保存成一维数组
for(i=0;i<8;i++)
{
for(j=0;j<7;j+)
{
if(a[i][j]%2 != 0)
{
odd[k++]=a[i][j];
}
else eve[l++]=a[i][j];
//冒泡升序排序奇数
for(i=0;i<k;i++)
{
for(j=k;j>i;j--)
{
if(odd[j-1]>odd[j])
{
swap(odd[j-1],odd[j]);
}
}
//冒泡降序排序偶数
for(i=0;i<l;i++)
{
for(j=l;j>i;j--)
{
if(eve[l-1]<eve[l])
{
swap(eve[j-1],eve[j]);
}
}
for(i=0;i<k;i++)
{
printf("%d\n",odd[i]); //输出奇数
}
for(i=0;i<l;i++)
{
printf("%d",eve[i]); //输出偶数
}
return 0;
}
void swap(int a,int b) //传值调换函数
{
int tmp;
tmp=a;
a=b;
b=tmp;
}
好了,还是比较复杂的。还好我手机打字快,不然就over了!谢谢!
上一个:C语言中的转换
下一个:怎样学好C语言啊?