菜菜鸟新问题求助...!希望大家帮帮忙 谢谢了 祝大家父亲节快乐咯!
我前面定义了一个 2唯数组(存储用户信息编号年龄什么的) 我想实现排序这个功能
然后写了一个小函数 我不知道问题出在哪里..编译不通过 希望大侠们能看看
函数如下:
/********************************************************
** Highlight software by yzfy(雨中飞燕) http://yzfy.org *
*********************************************************/
/***********排序模块*********/
int paixu(struct Data data[])
{
int a=0;
int i=0;
int j=0;
struct Data *temp=NULL;
printf("请选择1.编号升序,2.姓名升序");
scanf("%d",&a);
fflush(stdin);
if(a==1)
{
for( i=0; i<N; i++ )//选择排序
{
for( j=1; j<N; j++ )
{
if( data[i].EngineerNo>data[j].EngineerNo )
{
temp=data[i];
data[i]=data[j];
data[j]=temp;
}
}
}
return 0;
}
else if(a==2)
{
for( i=0; i<N; i++ )//选择排序
{
for( j=1; j<N; j++ )
{
if( strcmp(data[i].EngineerNo,data[j].EngineerNo) >0 )
{
temp=data[i];
data[i]=data[j];
data[j]=temp;
}
}
}
return 0;
}
}
** Highlight software by yzfy(雨中飞燕) http://yzfy.org *
*********************************************************/
/***********排序模块*********/
int paixu(struct Data data[])
{
int a=0;
int i=0;
int j=0;
struct Data *temp=NULL;
printf("请选择1.编号升序,2.姓名升序");
scanf("%d",&a);
fflush(stdin);
if(a==1)
{
for( i=0; i<N; i++ )//选择排序
{
for( j=1; j<N; j++ )
{
if( data[i].EngineerNo>data[j].EngineerNo )
{
temp=data[i];
data[i]=data[j];
data[j]=temp;
}
}
}
return 0;
}
else if(a==2)
{
for( i=0; i<N; i++ )//选择排序
{
for( j=1; j<N; j++ )
{
if( strcmp(data[i].EngineerNo,data[j].EngineerNo) >0 )
{
temp=data[i];
data[i]=data[j];
data[j]=temp;
}
}
}
return 0;
}
}
----------------解决方案--------------------------------------------------------
编译的时候 是错在
data[i]=data[j];
data[j]=temp; 我不明白是什么意思 希望高手能指点1,2
----------------解决方案--------------------------------------------------------
你的temp是指针,data[i]是数据域……
----------------解决方案--------------------------------------------------------
[bo][un]smltq[/un] 在 2008-6-15 18:54 的发言:[/bo]
你的temp是指针,data是数据域……
你的temp是指针,data是数据域……
能不能具体点 或者给个解决的办法...我用TEMP指针..!!
----------------解决方案--------------------------------------------------------
这里 应该不用指针temp吧。直接定义 Int temp 应该就行。temp=data[i].engineer。然后应该就可以了。另外 如果要完成 排序 。我想 最好把j=i+1,j<n;j++ 这样才能实现。否则应该实现不了
----------------解决方案--------------------------------------------------------
struct Data *temp=NULL;//把这里改成struct Data temp;
试试
----------------解决方案--------------------------------------------------------