-1

可能重复:
结构混淆

我需要帮助...我的代码中有一些错误(我在这些行中添加了一些注释),例如:

错误:“bookRecord”之前的预期表达式</p>

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

所以我想修复错误并使 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;
}
4

1 回答 1

0

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

bookRecord is a type not variable

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

改用它(以避免混淆):

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

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

对于内部错误,请main使用 varstacks而不是 type bookRecord

于 2012-08-18T18:21:46.403 回答