鱼C论坛

 找回密码
 立即注册
查看: 1196|回复: 4

[已解决]这个错误怎么改'return' : cannot convert from ',会就会,不会就别BB

[复制链接]
发表于 2022-5-20 18:30:35 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能^_^

您需要 登录 才可以下载或查看,没有账号?立即注册

x
本帖最后由 猫喵鱼 于 2022-5-21 20:15 编辑

#include <stdio.h>
#include <malloc.h>
#include <stdlib.h>
typedef int DataType;/*定义DataType为int类型*/
typedef struct qnode  /*链队列存储类型*/
{
        DataType data;    /*定义结点的数据域*/
    struct qnode  *next; /*定义结点的指针域*/
} LinkListQ;
typedef struct
{
  LinkListQ *front,*rear; /*定义队列的队头指针和队尾指针*/
}LinkQueue;/*链队列的头指针类型*/


int InitQueue(LinkQueue *Q)
{   /*初始化链队列函数*/
    Q->front=Q->rear=(LinkListQ *)malloc (sizeof(qnode));
        if(!Q->front)
        {
          exit(0);
        }
        Q->front->next=NULL;
        return Q;
}

int EmptyQueue(LinkQueue *Q)
{   /*判断队空函数*/
    if(Q->front==Q->rear) /*链队为空*/
        {
                return 1;
        }
    else
        {
         return 0;
        }
}

int InQueue(LinkQueue *Q,DataType x)
{ /*入队函数*/
     LinkListQ *p;
     p=(LinkListQ *)malloc(sizeof(LinkListQ)); /*生成新结点*/
     p->data=x; /*将x存入新结点的数据域*/
     p->next=NULL;
     Q->rear->next=p; /*将新结点插入链队之后*/
     Q->rear=p; /*队尾指针指向队尾元素*/
}

int DeQueue(LinkQueue *Q , DataType *x)
{ /*出队函数*/
     LinkListQ *p; //调用判空函数EmptyQueue(Q),判断队列是否为空
     if(EmptyQueue(Q))
         {
       printf("队空,不能出队元素!");
        return 0;
         }
     else   /*队不为空*/
         {
                 p=Q->front->next; /*p 指向队头元素*/
         *x=p->data;/*队头元素取出赋给x*/
Q->front->next=p->next;/*队头指针的指针域存放新队头元素的地址*/
   if(p->next==NULL) /*队列中只含有一个元素出队*/
Q->rear=Q->front; /*出队后队尾指针指向队头指针,此时队空*/
   free(p); /*释放原队头结点空间*/
return 1;
         }
}

int GetFront(LinkQueue *Q,DataType *x)
{
        /*获取队头元素函数*/
    if(EmptyQueue(Q))/*调用判空函数Emptyeueue(Q),判断队列是否为空*/
    {
                printf("队空,无队头元素!");
    return 0;
        }
    else /*队不为空*/
        {
      *x=Q->front->next->data; /*队头元素赋给变量x*/
       return 1;
        }
}

int ShowQueue(LinkQueue *Q)
{  /*显示队中元素函数*/
LinkListQ *p=Q->front->next;
    if(p==NULL)
printf("队列为空,无元素!");
    else
        {
       printf("从队列元素起栈中各元素为:");
       while(p!=NULL)
           {
           printf("%5d",p->data);
           p=p->next;
           }
        }
}
void MenuQueue ()
{  /*显示菜单子函数*/
printf("\n               队列子系统");
printf("\n================================|");
printf("\n|\t\t 1——初始化队列           |");
printf("\n|\t\t 2——入队操作             |");
printf("\n|\t\t 3——出队操作             |");
printf("\n|\t\t 4——求队头元素           |");
printf("\n|\t\t 5——显示队中所有元素     |");
printf("\n|\t\t 0——返回                 |");
printf("\n================================|");
printf("\n请输入菜单号(0-5) :");
}

void main()
{
        int i,n,flag;
    LinkQueue *Q;
    DataType x;
    char ch1,ch2,a;
ch1='y';
while(ch1=='y'||ch1=='Y')
{
        MenuQueue();
scanf("%c",&ch2);
getchar();
        switch(ch2)
                {
                case '1':
        InitQueue(Q);
        printf("队列的初始化完成!");
        break;
                case '2':
printf("请输入要入队的元素个数:");
scanf("%d",&n);
printf("请输入%d个整数进行入队:",n);
                for(i=0;i<n;i++)
                                {
                      scanf("%d",&x);
                      InQueue(Q,x);
                                }
                      printf("入队操作完成");
                break;
                case'3':
printf("请输入要出队的元素个数:");
scanf("%d",&n);
printf("出队的元素顺序依次为:");
               for(i=0;i<n;i++)
                           {
    flag=DeQueue(Q,&x);
printf("%5d",x);
                           }
      if(flag==1)
printf("\n出队操作成功!");
      else
printf("\n出队操作失败!");
        break;
                case '4':
       if(flag=GetFront(Q,&x))
printf("当前的队头元素值为:%d",x);
break;
                case '5':
        ShowQueue(Q);
break;
                case '0':
        ch1='n';break;
                default:
                printf("输入有误,请输入0-4进行选择!");
                }
                if(ch2!='0')
                {
                        printf("\n按回车键继续,按任意键返回主菜单!\n");
                    a=getchar();
                if(a!='\xA')
                {
                 getchar();ch1='n';
                }
                }
}
}

最佳答案
2022-7-4 06:56:31
int InitQueue(LinkQueue *Q)
{   /*初始化链队列函数*/
    Q->front=Q->rear=(LinkListQ *)malloc (sizeof(qnode));
        if(!Q->front)
        {
          exit(0);
        }
        Q->front->next=NULL;
        return Q;
}
这里不能return Q,Q是LinkQueque*,不能以int形式返回
修改代码如下
void InitQueue(LinkQueue *Q)
{   /*初始化链队列函数*/
    Q->front=Q->rear=(LinkListQ *)malloc (sizeof(qnode));
        if(!Q->front)
        {
          exit(0);
        }
        Q->front->next=NULL;
//如果有用,请设置最佳答案
}
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2022-5-21 06:17:20 From FishC Mobile | 显示全部楼层
这东西还是要自己写,自己调试
因为首先你就无法保证书上的代码百分之百能正确运行
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2022-5-21 10:46:41 | 显示全部楼层
我就是因为不会写,才求助大神,你不要告诉我你学了几个月的代码就会自己写。
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 0 反对 1

使用道具 举报

发表于 2022-6-26 19:33:51 | 显示全部楼层
本帖最后由 ExiaGN001 于 2022-7-4 06:56 编辑
猫喵鱼 发表于 2022-5-21 10:46
我就是因为不会写,才求助大神,你不要告诉我你学了几个月的代码就会自己写。


int InitQueue(LinkQueue *Q)
{   /*初始化链队列函数*/
    Q->front=Q->rear=(LinkListQ *)malloc (sizeof(qnode));
        if(!Q->front)
        {
          exit(0);
        }
        Q->front->next=NULL;
        return Q;
}
这里不能return Q,Q是LinkQueque*,不能以int形式返回
修改代码如下
void InitQueue(LinkQueue *Q)
{   /*初始化链队列函数*/
    Q->front=Q->rear=(LinkListQ *)malloc (sizeof(qnode));
        if(!Q->front)
        {
          exit(0);
        }
        Q->front->next=NULL;
//如果有用,请设置最佳答案
}
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2022-7-4 06:56:31 | 显示全部楼层    本楼为最佳答案   
int InitQueue(LinkQueue *Q)
{   /*初始化链队列函数*/
    Q->front=Q->rear=(LinkListQ *)malloc (sizeof(qnode));
        if(!Q->front)
        {
          exit(0);
        }
        Q->front->next=NULL;
        return Q;
}
这里不能return Q,Q是LinkQueque*,不能以int形式返回
修改代码如下
void InitQueue(LinkQueue *Q)
{   /*初始化链队列函数*/
    Q->front=Q->rear=(LinkListQ *)malloc (sizeof(qnode));
        if(!Q->front)
        {
          exit(0);
        }
        Q->front->next=NULL;
//如果有用,请设置最佳答案
}
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2024-5-2 14:22

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表