t_dcy 2020-10-04 20:26 采纳率: 0%
浏览 305

为什么两个结构体变量无法比较。

#include
#include
#define MAXSIZE 100
#define OVERFLOW -2
#define OK 1
#define Status int
#define ERROR 0
//第一个结构体
typedef struct{
char no[20];
char name[50];
float price;
}Book;
//第二个结构体
typedef struct{
Book *elem;
int length;
}SqList;
//初始化顺序表
Status InitList(SqList &L){
L.elem=new Book[MAXSIZE];
if(!L.elem) exit(OVERFLOW);
L.length=0;
printf("初始化线性表成功!\n");
return OK;
}
//将L重置为空表
ClearList(SqList &L){
L.length=0;
printf("置空成功!\n");
}
//返回L中第一个值与e相同的元素在L中的位置。若这样的元素不存在,则返回值为0。
int LocatElem(SqList &L,Book &e){
int i;
for(i=0;i<L.length;i++)
if(L.elem[i]==e) return i+1;
return 0;
}
//主函数
int main(){
SqList L;
Book e;
for(i=0;i<10;i++){
scanf("%s%s%f",&e.no,&e.name,&e.price)
L.elem[i]=e;
L.length++;
}
Book d;
d.name=tain;
d.no=ss;
d.price=123;
ListInsert(L);
ClearList(L);
LocatElem(L,d);
}

图片说明图片说明

  • 写回答

1条回答 默认 最新

  • threenewbee 2020-10-04 22:06
    关注
    加上一个函数:
    #include <string.h>
    int isEqual(Book b1, Book b2)
    {
    return strcmp(b1.no, b2.no) == 0 &&  b1.price == b2.price && strcmp(b1.name, b2.name);
    }
    调用
    if (isEqual(L.elem[i], e)) return i + 1;
    
    评论

报告相同问题?

悬赏问题

  • ¥15 安卓adb backup备份应用数据失败
  • ¥15 eclipse运行项目时遇到的问题
  • ¥15 关于#c##的问题:最近需要用CAT工具Trados进行一些开发
  • ¥15 南大pa1 小游戏没有界面,并且报了如下错误,尝试过换显卡驱动,但是好像不行
  • ¥15 没有证书,nginx怎么反向代理到只能接受https的公网网站
  • ¥50 成都蓉城足球俱乐部小程序抢票
  • ¥15 yolov7训练自己的数据集
  • ¥15 esp8266与51单片机连接问题(标签-单片机|关键词-串口)(相关搜索:51单片机|单片机|测试代码)
  • ¥15 电力市场出清matlab yalmip kkt 双层优化问题
  • ¥30 ros小车路径规划实现不了,如何解决?(操作系统-ubuntu)