预期的声明说明符错误

时间:2013-10-18 20:35:53

标签: c raspberry-pi

我正在编写介绍并努力完成此任务,感谢任何帮助!这是代码:

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

int main(void)
{

int cardNum(int firstCard, int secondCard; 
int highLow;
int score;

score = 0;   
srand(time(NULL));

printf("The current card is a %d\n" ,firstCard(2,14));
printf("\n Will the next card be higher(1) or lower(2)? (press 0 to quit)");
scanf("%d" ,highLow);

if (cardNum > 1 && cardNum < 11)
{        
     printf ("The card is: %d ,secondCard.");
}        
else if (cardNum == 11)
{
    printf ("The card is: Jack"); 
}       
else if (cardNum == 12)
{
    printf ("The card is: Queen"); 
}       
else if (cardNum == 13)
{
    printf ("The card is: King"); 
}       
else if cardNum == 14)
{
    printf ("The card is: Ace"); 
}       
{
if (highLow == 1 && secondCard > firstCard) || (highLow == 2, && secondCard < firstCard)
    {   
        score = score + 1; 
        printf ("\n You have guessed correctly.");
        printf ("\n Your current score is %d ,score!\n");
        printf("The current card is a ("%d" ,cardOne). \n Will the next card be higher(1) or lower(2)? (press 0 to quit)");
    }    
else if (highLow == 1, && secondCard < firstCard) || (highLow == 2, && secondCard > firstCard)  
    {
        score = score - 1;
        printf ("The card is: %d ,secondCard.");
        printf ("\n You have guessed incorrectly.");
        printf ("\n Your current score is %d ,score!\n");
        printf ("The current card is a %d ,cardOne."); 
        printf ("\n Will the next card be higher(1) or lower(2)? (press 0 to quit)");
    }
else if (secondCard == firstCard)
    {
        printf ("\n Matching cards, no change in score");
    }
else if (highLow == 0)
    {
        printf ("\n Thanks for playing! Your final score is %d, score.");
    }
else
    {
        printf ("\n Incorrect input. Please enter 0, 1 or 2");      
    }
}    
return(0);
}

这些是错误:

a3.c: In function ‘main’:
a3.c:24:5: error: expected declaration specifiers or ‘...’ before ‘score’
a3.c:25:5: error: expected declaration specifiers or ‘...’ before ‘srand’
a3.c:27:5: error: expected declaration specifiers or ‘...’ before ‘printf’
a3.c:28:5: error: expected declaration specifiers or ‘...’ before ‘printf’
a3.c:29:5: error: expected declaration specifiers or ‘...’ before ‘scanf’
a3.c:31:5: error: expected declaration specifiers or ‘...’ before ‘if’
a3.c:52:9: error: ‘highLow’ undeclared (first use in this function)
a3.c:52:9: note: each undeclared identifier is reported only once for each function it appears in
a3.c:52:25: error: ‘secondCard’ undeclared (first use in this function)
a3.c:52:38: error: ‘firstCard’ undeclared (first use in this function)
a3.c:52:49: error: expected expression before ‘||’ token

我知道未申报的部分,因为我应该随机编号并存储它们,但我仍然没有完全弄明白(任何建议都很棒)但主要是我关注预期的声明说明符的广泛列表。任何帮助将不胜感激!

4 个答案:

答案 0 :(得分:1)

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

int main(void)
{

int cardNum, int firstCard, int secondCard; 
int highLow;
int score;

score = 0;   
srand(time(NULL));

printf("The current card is a %d\n", firstCard(2,14));
printf("\n Will the next card be higher(1) or lower(2)? (press 0 to quit)");
scanf("%d" ,highLow);

if (cardNum > 1 && cardNum < 11)
{        
     printf ("The card is: %d ,secondCard.");
}        
else if (cardNum == 11)
{
    printf ("The card is: Jack"); 
}       
else if (cardNum == 12)
{
    printf ("The card is: Queen"); 
}       
else if (cardNum == 13)
{
    printf ("The card is: King"); 
}       
else if cardNum == 14)
{
    printf ("The card is: Ace"); 
}       
{
if ((highLow == 1 && secondCard > firstCard) || (highLow == 2 && secondCard < firstCard))
    {   
        score = score + 1; 
        printf ("\n You have guessed correctly.");
        printf ("\n Your current score is %d ,score!\n");
        printf("The current card is a ("%d" ,cardOne). \n Will the next card be higher(1) or lower(2)? (press 0 to quit)");
    }    
else if ((highLow == 1 && secondCard < firstCard) || (highLow == 2 && secondCard > firstCard))  
    {
        score = score - 1;
        printf ("The card is: %d ,secondCard.");
        printf ("\n You have guessed incorrectly.");
        printf ("\n Your current score is %d ,score!\n");
        printf ("The current card is a %d ,cardOne."); 
        printf ("\n Will the next card be higher(1) or lower(2)? (press 0 to quit)");
    }
else if (secondCard == firstCard)
    {
        printf ("\n Matching cards, no change in score");
    }
else if (highLow == 0)
    {
        printf ("\n Thanks for playing! Your final score is %d, score.");
    }
else
    {
        printf ("\n Incorrect input. Please enter 0, 1 or 2");      
    }
}    
return(0);
}

答案 1 :(得分:1)

1)int cardNum(int firstCard, int secondCard;

而不是这样你应该写

int cardNum, int firstCard, int secondCard;

因为你要声明变量

2)if (highLow == 1 && secondCard > firstCard) || (highLow == 2, && secondCard < firstCard)

而不是下面给出的写声明

if (highLow == 1 && secondCard > firstCard) || (highLow == 2 && secondCard < firstCard)

3)else if (highLow == 1, && secondCard < firstCard) || (highLow == 2, && secondCard > firstCard)

你应该写

else if (highLow == 1 && secondCard < firstCard) || (highLow == 2 && secondCard > firstCard)

答案 2 :(得分:0)

看看这一行:

int cardNum(int firstCard, int secondCard;

我想它应该是:

int cardNum, int firstCard, int secondCard; 

if语句也是错误的。我想它应该是:

if ((highLow == 1 && secondCard > firstCard) || (highLow == 2, && secondCard < firstCard))

else if ((highLow == 1 && secondCard < firstCard) || (highLow == 2 && secondCard > firstCard))

你应该从零开始学习C.

答案 3 :(得分:-1)

只需使用任何Integrated development environment (IDE)突出显示语法错误。我们不想成为您的编辑。

这是一些有用的链接(显然任何C ++ IDE都会检查C语法):

快乐的编码!

相关问题