结构混乱(2)

时间:2012-08-18 18:06:08

标签: c arrays function compiler-construction struct

  

可能重复:
  struct confusion

我需要帮助......我的代码中存在一些错误(我已对行添加了一些注释),如下所示:

错误:'bookRecord'之前的预期表达

.....这是一个程序员,它将一些书籍数据存储在一个结构数组中,并使用一个函数来查看用户搜索的书籍是否可用。

所以我想修复错误并使bookRecord看起来不像变量,

你知道我怎么能这样做,因为我在这里待了几个小时!

提前致谢!

  #include<stdio.h>           
   #include <stdlib.h>
  #include <string.h>


 #define TRUE 1
  #define FALSE 0

 #define NUM_BOOKS 5



     typedef struct {
    int minute; 
    int hour;   
     } timeT;


typedef struct {

   char title[50];  
   char author[50];     
   int year;        
   int isOut;                   
   timeT time;      
   int isBlank;         
 } bookRecord;


/* given array of struct */

  bookRecord stacks[NUM_BOOKS]=
   {
   {"C How To Program", "Deitel", 2006, FALSE, {0,  0}, TRUE} ,
   {"The Old Capital", "Yasunari Kawabata", 1996, FALSE, { 0, 0}, TRUE},
   {"", "", 0, FALSE, {0,0}, FALSE},
   {"", "", 0, FALSE, {0,0}, FALSE},
   {"", "", 0, FALSE, {0,0}, FALSE}
   };


  int requestBook(bookRecord title[],bookRecord author[]){    /* compiler error */
      int i;
      for(i=0;i<=NUMBOOKS-1;i++){
              if(strcmp(stacks[i].tittle ,bookRecord.title[0]) == 0 &&                                                                              
              strcmp(stacks[i].author     ,bookRecord.author[0]) == 0 ){

              return 1;
               }
       }
               return 0;
  }

int main (int argc, char*argv[]) { 
int t;

scanf("%s ",bookRecord.title);         /* compiler error */
scanf("%s",bookRecord.author);     /* compiler error */

 t=requestBook(bookRecord.title, bookRecord.author);   /* compiler error*/
 printf("%d",t);


 return 0;
}

1 个答案:

答案 0 :(得分:0)

您的代码中的问题是您使用的是类型而不是变量!

bookRecord is a type not variable

int requestBook(bookRecord title[],bookRecord author[]){    /* compiler error */

改为使用它(以避免混淆):

int requestBook(bookRecord title_record[],bookRecord author_record[]){

这里title_recordauthor_record是bookRecord类型的结构数组我不确定这个行为是你想要的,你应该为作者创建一个类型。

对于main内的错误,请使用var stacks而不是bookRecord类型。