| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 347 人关注过本帖
标题:弱弱的问下!
只看楼主 加入收藏
yol70928
Rank: 1
等 级:新手上路
帖 子:43
专家分:0
注 册:2010-3-2
结帖率:75%
收藏
已结贴  问题点数:20 回复次数:5 
弱弱的问下!
编程器警告发出2条警告! 传递参数1的不相容的指针类型的列表
                    预期的结构节点* const *’但参数的类型是列表

是什么意思!
2013-03-31 15:43
peach5460
Rank: 15Rank: 15Rank: 15Rank: 15Rank: 15
来 自:武汉
等 级:贵宾
威 望:30
帖 子:2780
专家分:6060
注 册:2008-1-28
收藏
得分:14 
代码呢?

我总觉得授人以鱼不如授人以渔...
可是总有些SB叫嚣着:要么给代码给答案,要么滚蛋...
虽然我知道不要跟SB一般见识,但是我真的没修炼到宠辱不惊...
2013-03-31 15:48
yol70928
Rank: 1
等 级:新手上路
帖 子:43
专家分:0
注 册:2010-3-2
收藏
得分:0 
程序代码:
#ifndef LIST_H_
#define LIST_H_
#include<stdbool.h>

#define TSIZE 45

struct film
{
  char title[TSIZE];
  int rating;
};

typedef struct film Item;

typed
ef struct node
{
    Item item;
    struct node *next;
}Node;

typedef Node *List;

void InitializeList(List *plist);

bool ListIsEmpty(const List *plist);

bool ListIsFull(const List *plist);

unsigned int ListItemCount(const List *plist);

bool AddItem(Item item,List *plist);

void Traverse(const List *plist,void(*pfun)(Item item));

void EmptyTheList(List *plist);

#endif // LIST_H_INCLUDED

程序代码:
#include<stdio.h>
#include<stdlib.h>
#include "list.h"
void showmovies(Item item);


int main(void)
{
    List movies;
    Item temp;

    InitializeList(&movies);
    if(ListIsFull(movies))
    {
        fprintf(stderr,"没有可用内存!Bye!\n");
        exit(1);
    }
    puts("进入第一个电影标题:");
    while(gets(temp.title)!=NULL&&temp.title[0]!='\0')
    {
        puts("输入你的评价<0-10>:");
        scanf("%d",&temp.rating);
        while(getchar()!='\n')
           continue;
        if(AddItem(temp,&movies)==false)
        {
            fprintf(stderr,"问题分配内存\n");
            break;
        }
        if(ListIsFull(movies))
        {
            puts("列表已满.");
            break;
        }
      puts("进入下一个电影标题(空行停止):");
    }
    if(ListIsEmpty(movies))
       printf("没有数据输入.");
    else
      {
          printf("这是电影列表: \n");
          Traverse(movies,showmovies);

      }
     printf("你进入 %d 电影.\n",ListItemCount(movies));
     EmptyTheList(&movies);
     printf("Bye!\n");
     return 0;
}
void showmovies(Item item)
{
    printf("Movie: %s Rating %d\n",item.title,item.rating);
}



程序代码:
#include <stdio.h>
#include <stdlib.h>
#include "list.h"

static void CopyToNode(Item item, Node * pnode);

void InitializeList(List *plist)
{
    *plist=NULL;
}
bool ListIsEmpty(const List *plist)
{
    if(*plist==NULL)
        return true;
    else
       return false;
}
bool ListIsFull(const List * plist)
{
    Node *pt;
    bool full;

    pt=(Node *)malloc(sizeof(Node));
    if(pt==NULL)
       full=true;
    else
       full=false;
    free(pt);
    return full;
}

unsigned int ListItemCount(const List *plist)
{
    unsigned int count=0;
    Node *pnode=*plist;

    while(pnode!=NULL)
    {
        ++count;
        pnode=pnode->next;
    }
    return count;
}

bool AddItem(Item item,List *plist)
{
    Node *pnew;
    Node *scan=*plist;

    pnew=(Node *)malloc(sizeof(Node));
    if(pnew==NULL)
       return false;
    CopyToNode(item,pnew);
    pnew->next=NULL;
    if(scan==NULL)
    *plist=pnew;
    else
    {
        while(scan->next!=NULL)
            scan=scan->next;
        scan->next=pnew;
    }
    return true;
}
void Traverse(const List * plist,void(*pfun)(Item item))
{
    Node *pnode=*plist;
    while(pnode!=NULL)
    {
        (*pfun)(pnode->item);
        pnode=pnode->next;
    }
}
void EmptyTheList(List *plist)
{
    Node *psave;
    while(*plist!=NULL)
    {
        psave=(*plist)->next;
        free(*plist);
        *plist=psave;
    }
}
static void CopyToNode(Item item,Node *pnode)
{
    pnode->item=item;
}


这问是那里出问题了出现5条警告!
2013-03-31 16:06
yol70928
Rank: 1
等 级:新手上路
帖 子:43
专家分:0
注 册:2010-3-2
收藏
得分:0 
编译器提示5条警告 谁能告诉下出了什么问题了!!!
2013-03-31 16:08
peach5460
Rank: 15Rank: 15Rank: 15Rank: 15Rank: 15
来 自:武汉
等 级:贵宾
威 望:30
帖 子:2780
专家分:6060
注 册:2008-1-28
收藏
得分:0 
报的哪行?为什么每个新手都TM不会问问题?

我总觉得授人以鱼不如授人以渔...
可是总有些SB叫嚣着:要么给代码给答案,要么滚蛋...
虽然我知道不要跟SB一般见识,但是我真的没修炼到宠辱不惊...
2013-03-31 16:18
yol70928
Rank: 1
等 级:新手上路
帖 子:43
专家分:0
注 册:2010-3-2
收藏
得分:0 
if(ListIsFull(movies))
bool ListIsFull(const List *plist);
        if(ListIsFull(movies))
bool ListIsFull(const List *plist);
    if(ListIsEmpty(movies))

bool ListIsEmpty(const List *plist);
          Traverse(movies,showmovies);
void Traverse(const List *plist,void(*pfun)(Item item));
     printf("你进入 %d 电影.\n",ListItemCount(movies));
unsigned int ListItemCount(const List *plist);
出警告的!!
2013-03-31 16:22
快速回复:弱弱的问下!
数据加载中...
 
   



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

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