| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 750 人关注过本帖, 1 人收藏
标题:求大神解决个问题,不知道怎么改了。
只看楼主 加入收藏
duanfff
Rank: 1
等 级:新手上路
帖 子:4
专家分:0
注 册:2013-9-28
结帖率:0
收藏(1)
已结贴  问题点数:20 回复次数:8 
求大神解决个问题,不知道怎么改了。
#include<stdio.h>
#include<malloc.h>
#include<process.h>
#include<string.h>

#define Max_kind 10
#define Kind_increase 2
#define OK 1
#define ERROR -1
#define OVERFLOW -1

typedef struct
{char k;
 int p;
}Foodkp;

typedef struct
{Foodkp *k;
 int kindth;
 int All_kinds;
}food;

//初始化
int InitKind_f(food *L)
{L->k=(Foodkp*)malloc(Max_kind*sizeof(Foodkp));
 if(!L->k)   exit(OVERFLOW);
 L->kindth=0;
 L->All_kinds=Max_kind;
 return 0;
}

//删除
int KindDelete_f(food *L,int i,Foodkp d)
{if((i<1)||(i>L->kindth))   return ERROR;
 Foodkp *m,*n;
 m=&(L->k[i-1]);
 d=*m;
 n=L->k+L->kindth-1;
 for(m++;m<=n;m++)  *(m-1)=*m;
 --L->kindth;
 return OK;
}

//查找定位删除
int FindDelete_f(food L,Foodkp d)
{int i=1;
 while((i<=L.kindth)&&(L.k[i-1]!=d))   i++;
 if(i<=L->kindth)
   KindDelete_f(L,i,d)&&return i;
 else return 0;
}


E:\C语言\作业1\food.cpp(65) : error C2676: binary '!=' : 'Foodkp' does not define this operator or a conversion to a type acceptable to the predefined operator
E:\C语言\作业1\food.cpp(65) : fatal error C1903: unable to recover from previous error(s); stopping compilation
执行 cl.exe 时出错.
注:第65行就是while((i<=L.kindth)&&(L.k[i-1]!=d))   i++;
搜索更多相关主题的帖子: return include 
2013-09-30 21:48
303770957
Rank: 11Rank: 11Rank: 11Rank: 11
等 级:小飞侠
威 望:6
帖 子:838
专家分:2125
注 册:2005-9-10
收藏
得分:4 
没有主函数,不知道你是怎么调用这些函数的。

♂ 死后定当长眠,生前何须久睡。♀
2013-09-30 22:05
duanfff
Rank: 1
等 级:新手上路
帖 子:4
专家分:0
注 册:2013-9-28
收藏
得分:0 
回复 2楼 303770957
我的主函数在底下呢,然后调用这个函数,但我不知道怎么改这个函数,基础有点差。
2013-09-30 22:38
tlliqi
Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19
等 级:贵宾
威 望:204
帖 子:15453
专家分:65956
注 册:2006-4-27
收藏
得分:4 
底下也没有主函数
2013-10-01 07:22
duanfff
Rank: 1
等 级:新手上路
帖 子:4
专家分:0
注 册:2013-9-28
收藏
得分:0 
回复 4楼 tlliqi
好吧,我把我的函数全部发上来吧,虽然还是残次品,我还想着一个一个问题的解决呢。
#include<stdio.h>
#include<malloc.h>
#include<process.h>
#include<string.h>

#define Max_kind 10
#define Kind_increase 2
#define OK 1
#define ERROR -1
#define OVERFLOW -1

typedef struct
{char k;
 int p;
}Foodkp;

typedef struct
{Foodkp *kp;
 int kindth;
 int All_kinds;
}food;

//初始化
int InitKind_f(food *L)
{L->kp=(Foodkp*)malloc(Max_kind*sizeof(Foodkp));
 if(!L->kp)   exit(OVERFLOW);
 L->kindth=0;
 L->All_kinds=Max_kind;
 return 0;
}

//插入
int KindInsert_f(food *L,int i,Foodkp d)
{if((i<1)||(i>L->kindth+1))   return ERROR;
 Foodkp *Newbase;
 if(L->kindth>=L->All_kinds)
 {Newbase=(Foodkp*)malloc((L->All_kinds+Kind_increase)*sizeof(Foodkp));
 if(!Newbase)   exit(OVERFLOW);
 L->kp=Newbase;
 L->All_kinds+=Kind_increase;
 }
 Foodkp *m,*n;
 m=&(L->kp[i-1]);
 for(n=&(L->kp[L->kindth-1]);n>=m;m--)   *(n+1)=*n;
 *m=d;
 ++L->kindth;
 return OK;
}

//删除
int KindDelete_f(food *L,int i,Foodkp d)
{if((i<1)||(i>L->kindth))   return ERROR;
 Foodkp *m,*n;
 m=&(L->kp[i-1]);
 d=*m;
 n=L->kp+L->kindth-1;
 for(m++;m<=n;m++)  *(m-1)=*m;
 --L->kindth;
 return OK;
}

//查找定位删除
/*int FindDelete_f(food L,Foodkp d)
{int i=1;
 while((i<=L.kindth)&&(L.k[i-1]!=d))   i++;
 if(i<=L->kindth)
   KindDelete_f(L,i,d)&&return i;
 else return 0;
}*/

//返回给定位置的元素
int KindReturn_f(food L,int i)
{Foodkp d;
 d=L.kp[i];
 printf("%c%6d\n",d.k,d.p);
 return 0;
}

//合并两个线性表
/*void MergeKind_f(food La,food Lb,food L)
{Foodkp *ga,*gb,*g,*ga_last,*gb_last;
 ga=La.k;
 gb=Lb.k;
 L.All_kinds=L.kindth=La.kindth+Lb.kindth;
 g=L.k=(Foodkp*)malloc(L.All_kinds*sizeof(Foodkp));
 if(!L.k)   exit(OVERFLOW);
 ga_last=La.k+La.kindth-1;
 gb_last=Lb.k+Lb.kindth-1;
 while(ga<=ga_last&&gb<=gb_last)
 {if(*ga<=*gb)   *g++=*ga++;
  else   *g++=*gb++;
 }
 while(ga<=ga_last)   *g++=*ga++;
 while(gb<=gb_last)   *g++=*gb++;
}*/

main()
{printf("                 欢迎来到食物系统\n\n");
 food *L=(food*)malloc(Max_kind*sizeof(food));
 InitKind_f(L);
 //L->kp->k="鱼";
 //L->k[3]={{"鱼",16}{"饭",8}{"汤",5}{"粥",1}};
 printf("1.插入一种食物及其价格。\n");
 printf("2.删除一种食物及其价格。\n");
 printf("3.定位你想要查找的食物与价格并进行删除。\n");
 printf("4.查找给定编号上的食物及价格。\n");
 printf("5.合并2个食物与价格列表。\n");
 int i;
 printf("请输入你想实现的功能编号:");
 scanf("d%\n",&i);
 switch(i)
 {case 1:{};break;
  case 2:{};break;
  case 3:{};break;
  case 4:{};break;
  case 5:{};break;
  default:printf("输入错误\n");
 }
 return 0;
}
其中我给注释掉的地方就是出现问题的地方。
这是作业,真心求大神解救,最好帮我解决我其他不会的。
2013-10-01 09:47
Dramalife
Rank: 2
来 自:河北唐山
等 级:论坛游民
帖 子:35
专家分:50
注 册:2013-9-26
收藏
得分:4 
回复 2楼 303770957
可以问你个问题吗,我刚学c,用tc输入下面的为啥错误呢谢啦

#include<stdio.h>
main()
      { printf(“This is a C program.\n”);
      }

天才第一步,爹地宝贝纸尿裤~
2013-10-01 22:59
fc176154001
Rank: 2
来 自:四川阆中
等 级:论坛游民
帖 子:87
专家分:96
注 册:2013-6-16
收藏
得分:4 
回复 6楼 Dramalife
你这个是printf(“This is a C program.\n”);双引号用的是中文的引号,改下就可以了,新手很容易犯这个错误的,话说我也是新手

大神永远不能体会菜鸟们之间的惺惺相惜,
2013-10-02 09:07
小小程序猿
Rank: 11Rank: 11Rank: 11Rank: 11
等 级:小飞侠
威 望:1
帖 子:755
专家分:2785
注 册:2013-7-18
收藏
得分:4 
其他的错误暂且不说

主函数中   switch下的    case     中 是不是   应该      调用函数????

孤独与寂寞是催化一个人迅速成长的良药,没有之一
2013-10-02 09:20
Dramalife
Rank: 2
来 自:河北唐山
等 级:论坛游民
帖 子:35
专家分:50
注 册:2013-9-26
收藏
得分:0 
回复 7楼 fc176154001
灰常感谢

天才第一步,爹地宝贝纸尿裤~
2013-10-02 23:55
快速回复:求大神解决个问题,不知道怎么改了。
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.022416 second(s), 7 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved