3

我正在进行入门编程并努力完成这项任务,感谢您的帮助!这是代码:

#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

4 回答 4

3

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)

于 2013-10-19T06:54:16.917 回答
0
#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);
}
于 2013-10-18T20:50:50.493 回答
-1

看看这一行:

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。

于 2013-10-18T20:38:04.363 回答
-3

只需使用突出显示语法错误的任何集成开发环境 (IDE)。我们不想成为您的编辑。

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

快乐编码!

于 2013-10-18T20:51:12.600 回答