关于数组排序问题(二维数组和枚举变量作形参)
编译通不过,求原因!!另外请顺便给一个枚举变量做形参的程序,不会用枚举变量在VC下错误提示为:
--------------------Configuration: 1 - Win32 Debug--------------------
Compiling...
数组排序.C
F:\嵌入式组\嵌入式作业\yuanqi\1\数组排序.C(6) : warning C4013: 'BubbleSort' undefined; assuming extern returning int
F:\嵌入式组\嵌入式作业\yuanqi\1\数组排序.C(9) : error C2371: 'BubbleSort' : redefinition; different basic types
F:\嵌入式组\嵌入式作业\yuanqi\1\数组排序.C(36) : warning C4047: 'function' : 'int *' differs in levels of indirection from 'int [5][7]'
F:\嵌入式组\嵌入式作业\yuanqi\1\数组排序.C(36) : warning C4024: 'PrintArr' : different types for formal and actual parameter 1
执行 cl.exe 时出错.
数组排序.OBJ - 1 error(s), 0 warning(s)
源程序如下:求各位帮忙看看
#include<stdio.h>
void SortRow(int a[][7],int row)//行排序
{
int i;
for(i=0;i<row;i++)
BubbleSort(*(a+i));
}
void BubbleSort(int a[])//冒泡排序
{
int *p=a,j,i,k;
for(i=0;i<6;i++)
for(j=0;j<=7-i-1;j++)
{
if(*(p+j)>*(p+j+1))
{
k=*(p+j);
*(p+j)=*(p+1+j);
*(p+1+j)=k;
}
}
}
void PrintArr(int a[],int row )//输出所有元素
{
int i,j,*pi=a;
for(i=0;i<row;i++)
for(j=0;j<7;j++)
printf("%8d",*((pi+i)+j));
}
int main()
{
int iArr[5][7] = { {25,26,28,29,22,21,23} , {13,16,18,16,18,14,19} ,
{54,51,59,53,56,57,55} , {32,34,36,34,35,33,39} ,
{16,16,18,15,13,19,17} };
int i,j;
SortRow(iArr,5);
PrintArr(iArr,5);
}