Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/c/69.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C 函数中输出末尾的预期声明或语句_C_Input_Declaration - Fatal编程技术网

C 函数中输出末尾的预期声明或语句

C 函数中输出末尾的预期声明或语句,c,input,declaration,C,Input,Declaration,我有一个名为character_game的函数,该函数应该在main()中调用,它有两个参数,正确的角色答案和尝试次数。当我试图编译它时,它说:utilities.c:133:1:error:expected声明或语句位于输入端,133:1是包含函数右括号的代码的末尾 int character_game(char correct_answer, int max_guesses){ char guessed_char; int correct_case = 0; int guess

我有一个名为character_game的函数,该函数应该在main()中调用,它有两个参数,正确的角色答案和尝试次数。当我试图编译它时,它说:utilities.c:133:1:error:expected声明或语句位于输入端,133:1是包含函数右括号的代码的末尾

int character_game(char correct_answer, int max_guesses){

  char guessed_char;
  int correct_case = 0;
  int guessed_case = 0;
  int guessed_char_interval1, guessed_char_interval2;

  do {
     printf("letter?\n");
     scanf(" %c", &guessed_char);

                                            printf("guessed_char is: %d\n", guessed_char);
                                            printf("correct_answer is: %d\n", correct_answer);
                                            printf("guessed character is lower character? 0:no. Else:Yes. (%d)\n", islower(guessed_char));

                                            printf("guessed letter is %c\n", guessed_char);
     if (guessed_char < correct_answer){
        printf("too low\n");
     }

     else if (guessed_char > correct_answer){
        printf("too high\n");
     }
     else if (guessed_char == correct_answer){
        if (islower(guessed_char)){
           guessed_case = 1;
        }
        if ( islower(correct_answer)){
           correct_case = 1;
        }
        if (guessed_case == correct_case){
           return 1;
        }
        else{
           printf("wrong case\n");
        }

     }

     max_guesses--;
     printf("max_guesses now: %d\n", max_guesses);
  }while (max_guesses > 0);
} // ----> Missing
这是代码,我不知道它出了什么问题,我的助教也不知道

下面是包含其他函数的整个utilities.c代码

#include <stdio.h>
#include <stdlib.h>
#include <ctype.h>
#include "utilities.h"


int random_value(int lower_limit, int upper_limit);


void draw_square(int size, char ch){

   int row, col = 0;
   for(row = 0; row < size; row++){
      for(col = 0; col < size; col++){
           printf("%c",ch);
      }
      printf("\n");

   }


}


void draw_triangle(int size, char ch){

   int row;
   int spaces_to_print;
   int stars_to_print=1;
   int previous_stars;

   for (row == 1; row < size; row++){

      previous_stars = stars_to_print;
      spaces_to_print = size-row;

      while (spaces_to_print > 0){
         printf(" ");
         spaces_to_print--;
      }

      while (stars_to_print > 0){
         printf("%c", ch);
         stars_to_print--;
      }

      if (stars_to_print == 0){
         printf("\n");
         stars_to_print = previous_stars+2;
      }
   }


}

int number_game(int correct_answer, int max_guesses){

   int guessed_num;

   do{
      printf("num?");
      scanf("%d", &guessed_num);

      if (guessed_num > correct_answer){
         printf("too high\n");
      }

      if (guessed_num < correct_answer){
         printf("too low\n");

      }

      if (guessed_num == correct_answer){
         return 1;
      }


      max_guesses--;
      printf("max guesses now: %d\n", max_guesses);
   }while (max_guesses > 0);

   return 0;


int character_game(char correct_answer, int max_guesses){

   char guessed_char;
   int correct_case = 0;
   int guessed_case = 0;
   int guessed_char_interval1, guessed_char_interval2;

   do {
      printf("letter?\n");
      scanf(" %c", &guessed_char);

                                            printf("guessed_char is: %d\n", guessed_char);
                                            printf("correct_answer is: %d\n", correct_answer);
                                            printf("guessed character is lower character? 0:no. Else:Yes. (%d)\n", islower(guessed_char));

                                            printf("guessed letter is %c\n", guessed_char);
      if (guessed_char < correct_answer){
         printf("too low\n");
      }

      else if (guessed_char > correct_answer){
         printf("too high\n");
      }
      else if (guessed_char == correct_answer){
         if (islower(guessed_char)){
            guessed_case = 1;
         }
         if ( islower(correct_answer)){
            correct_case = 1;
         }
         if (guessed_case == correct_case){
            return 1;
         }
         else{
            printf("wrong case\n");
         }

      }

      max_guesses--;
      printf("max_guesses now: %d\n", max_guesses);

   } while (max_guesses > 0);



}
#包括
#包括
#包括
#包括“utilities.h”
int随机值(int下限、int上限);
虚线绘制方格(整数大小,字符数){
int行,col=0;
用于(行=0;行<大小;行++){
用于(列=0;列<大小;列++){
printf(“%c”,ch);
}
printf(“\n”);
}
}
空心三角形(整数大小,字符数){
int行;
int空格_到_打印;
int stars_至_print=1;
int以前的_星;
对于(行==1;行<大小;行++){
前几颗星=要打印的星;
空格到打印=行大小;
while(空格\u到\u打印>0){
printf(“”);
空格_到_打印--;
}
同时(星号到星号打印>0){
printf(“%c”,ch);
星到星打印--;
}
如果(星到星打印==0){
printf(“\n”);
星到星打印=以前的星+2;
}
}
}
整数游戏(整数正确答案,整数最大猜测){
猜数;
做{
printf(“num?”);
scanf(“%d”,猜测数量(&U);
如果(猜测数量>正确答案){
printf(“过高\n”);
}
如果(猜测数量<正确答案){
printf(“过低\n”);
}
如果(猜测数量==正确答案){
返回1;
}
马克斯猜测--;
printf(“现在的最大猜测次数:%d\n”,最大猜测次数);
}而(最大猜测>0);
返回0;
整数字符游戏(字符正确答案,整数最大猜测){
查猜出了查;
int correct_case=0;
int-gusted_case=0;
int猜测字符间隔1,猜测字符间隔2;
做{
printf(“字母?\n”);
scanf(“%c”&猜测字符);
printf(“猜测字符为:%d\n”,猜测字符);
printf(“正确答案为:%d\n”,正确答案);
printf(“猜出的字符是较低的字符?0:否。其他:是。(%d)\n”),islower(猜出的字符));
printf(“猜测的字母是%c\n”,猜测的字符);
如果(猜测字符<正确答案){
printf(“过低\n”);
}
否则如果(猜测字符>正确答案){
printf(“过高\n”);
}
else if(猜测字符==正确答案){
if(孤岛(猜测字符)){
猜测案例=1;
}
如果(islower(正确答案)){
正确的情况=1;
}
if(猜测的情况==正确的情况){
返回1;
}
否则{
printf(“错误案例\n”);
}
}
马克斯猜测--;
printf(“现在最大猜测:%d\n”,最大猜测);
}而(最大猜测>0);
}

我知道代码还没有完成,我还没有修复它。但是我无法编译它来进一步测试它。任何帮助都将不胜感激!

您没有在函数中添加右括号

int character_game(char correct_answer, int max_guesses){

  char guessed_char;
  int correct_case = 0;
  int guessed_case = 0;
  int guessed_char_interval1, guessed_char_interval2;

  do {
     printf("letter?\n");
     scanf(" %c", &guessed_char);

                                            printf("guessed_char is: %d\n", guessed_char);
                                            printf("correct_answer is: %d\n", correct_answer);
                                            printf("guessed character is lower character? 0:no. Else:Yes. (%d)\n", islower(guessed_char));

                                            printf("guessed letter is %c\n", guessed_char);
     if (guessed_char < correct_answer){
        printf("too low\n");
     }

     else if (guessed_char > correct_answer){
        printf("too high\n");
     }
     else if (guessed_char == correct_answer){
        if (islower(guessed_char)){
           guessed_case = 1;
        }
        if ( islower(correct_answer)){
           correct_case = 1;
        }
        if (guessed_case == correct_case){
           return 1;
        }
        else{
           printf("wrong case\n");
        }

     }

     max_guesses--;
     printf("max_guesses now: %d\n", max_guesses);
  }while (max_guesses > 0);
} // ----> Missing
int character\u游戏(char-correct\u答案,int-max\u猜测){
查猜出了查;
int correct_case=0;
int-gusted_case=0;
int猜测字符间隔1,猜测字符间隔2;
做{
printf(“字母?\n”);
scanf(“%c”&猜测字符);
printf(“猜测字符为:%d\n”,猜测字符);
printf(“正确答案为:%d\n”,正确答案);
printf(“猜出的字符是较低的字符?0:否。其他:是。(%d)\n”),islower(猜出的字符));
printf(“猜测的字母是%c\n”,猜测的字符);
如果(猜测字符<正确答案){
printf(“过低\n”);
}
否则如果(猜测字符>正确答案){
printf(“过高\n”);
}
else if(猜测字符==正确答案){
if(孤岛(猜测字符)){
猜测案例=1;
}
如果(islower(正确答案)){
正确的情况=1;
}
if(猜测的情况==正确的情况){
返回1;
}
否则{
printf(“错误案例\n”);
}
}
马克斯猜测--;
printf(“现在最大猜测:%d\n”,最大猜测);
}而(最大猜测>0);
}//--->缺失

结束括号就在while(max_guesss>0)下方。在您最初的问题中,它不在那里,后来添加了。请发布完整的代码(包括main等)。对我来说,除非你使用的是石器时代的编译器,否则它编译得很好。@Euuug,一开始它并不明显,因为它的格式不正确,但问题后来被编辑了。这正是任何人都会从原始代码中得到的错误。-
prog.c:48:1:错误:输入结束时需要声明或语句哑巴。我发现了问题。我意识到我在上一个函数中缺少了一个右括号…谢谢你的帮助!!那么实用程序中还有什么。c?任何可以定义某些内容的东西,早期编译器错误?按原样编译。