首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > C语言 >

incompatible types -自己找不到异常原因,请大家帮帮忙,多谢

2012-03-08 
incompatible types -自己找不到错误原因,请大家帮帮忙,谢谢!我在做一个航班订票系统,使用链表存储结构但

incompatible types -自己找不到错误原因,请大家帮帮忙,谢谢!
我在做一个航班订票系统,使用链表存储结构
但是我在写函数的时候,总是出现以下的warning:
incompatible   types   -   from   'struct   Air_Ticket   * '   to   'struct   Air_Ticket   * '

而且整个程序有40个这样的warning,都是一样的原因,但是我不明白为什么2个相同的变量不能赋值呀,请大家帮帮忙,谢谢!

程序部分代码:
Booker   *Book_Ticket(Air_Ticket   *Head)     /*订票函数(增加乘客记录)*/
{
Booker   *Head_book,*p,*p0;
Air_Ticket   *pt,*pt0;
char   sure;
char   des_city[20];
time_t   timer;
tm   *ptrtime;
int   i=0;

pt0=pt=Head;
pt=pt-> next;
pt0=pt0-> next;

p0=Head_book=(Booker   *)malloc(LEN_BOOKER);
if(Head_book==NULL){printf( "内存分配错误!\n ");return   0;}
       
p0-> next=NULL;
getchar();
while(1)
{
system( "cls ");
pt=Head;
pt=pt-> next;

pt0=Head;
pt0=pt0-> next;

p=(Booker   *)malloc(LEN_BOOKER);
if(p==NULL){printf( "内存分配失败!\n ");return   0;}

printf( "乘客姓名(20个字符以内,输入*退出): ");
gets(p-> name);
if(p-> name[0]== '* ')break;

timer=time(NULL);
ptrtime=localtime(&timer);

strcpy(p-> book_list_number,asctime(ptrtime));


printf( "证件号: ");
gets(p-> code);

printf( "目的地城市: ");
gets(des_city);

printf( "订票数量: ");
scanf( "%d ",&p-> book_number);

getchar();


printf( "订票航班号: ");
gets(p-> book_air_number);


while((strcmp(p-> book_air_number,pt-> Air_number))!=0&&pt-> next!=NULL)
{
pt=pt-> next;
}

if(pt-> next==NULL){printf( "该航班不存在,请按回车键重新输入 ");getchar();continue;}
else
{
if(p-> book_number <=pt-> Air_tik_number&&pt-> Air_tik_number!=0)
{
pt-> Air_tik_number=pt-> Air_tik_number-p-> book_number;
}

else{
if(pt-> Air_tik_number==0)
{


system( "cls ");
while(pt0-> next!=0)
{
if(strcmp(des_city,pt0-> Air_city)==0&&pt0-> Air_tik_number!=0)
Print__air(pt0);
        pt0=pt0-> next;
}
printf( "该航班机票已经售完,可选择以上其他航班:\n\n ");
continue;
}

if(p-> book_number> pt-> Air_tik_number)
{
printf( "订票数量大于可购机票数量,请重新输入\n ");
continue;
}

}

}

                system( "cls ");
printf( "------------\n ");
printf( "订票信息确认\n ");
printf( "------------\n ");

printf( "乘客姓名: ");
puts(p-> name);
printf( "\n\n ");

printf( "证件号: ");
puts(p-> code);
printf( "\n\n ");

printf( "订票数量: ");
printf( "%d\n\n ",p-> book_number);

printf( "--------\n ");
printf( "航班情况:\n ");
printf( "--------\n ");
Print__air(pt);

printf( "订单编号: ");
        puts(p-> book_list_number);
printf( "\n ");

printf( "总价:%d元\n ",pt-> Air_price*p-> book_number);



printf( "(确认-y,修改-n,退出-e)\n ");

sure=getchar();
  getchar();

if(sure== 'e '){free(p);p0-> next=NULL;break;}
if(sure== 'y '){p0-> next=p;p-> next=NULL;p0=p;}

}
return   Head_book;

}



[解决办法]
你把源代码都贴出来吧,只拿出一小段,不大容易看懂,也没法给你调试~
[解决办法]
我的代码分很多个c文件
很长
可以发给你吗~
请问你的邮箱地址??
[解决办法]
你这个是c++吧 。 C语言的话,两个名字不能一样 Air_Ticket
[解决办法]
找到原因了...但还有不太好的地方

typedef struct Time{ // <--|
int hour; |这两个地方 "Time "一般不取相同的.windows编程一般在
int min; |前面加tag
}Time; // <--|

如:
typedef struct tagCWPSTRUCT {
LPARAM lParam;
WPARAM wParam;
UINT message;
HWND hwnd;
} CWPSTRUCT, *PCWPSTRUCT, NEAR *NPCWPSTRUCT, FAR *LPCWPSTRUCT;
[解决办法]
typedef struct 后面不加结构体名的话 每次定义结构体类型时都要 这样定义: struct 结构体名 变量名;

[解决办法]
奇怪

热点排行