获取错误“;预期标识符或';(';before';{';C中的标记

获取错误“;预期标识符或';(';before';{';C中的标记,c,token,C,Token,任何帮助都会很好 #include <stdio.h> #define pi 3.14159 int main() { float r; char PI; /*Program for circumference. */ printf(" This is a program that will calculate circumference.\n"); printf("Please put in your radius.\n"); scanf

任何帮助都会很好

#include <stdio.h>
#define pi 3.14159



int main()
{
  float r;
  char PI;

/*Program for circumference. */

    printf(" This is a program that will calculate circumference.\n");
    printf("Please put in your radius.\n");

    scanf("%f", &r);
    printf("Please input PI\n");
    PI = getchar();
 }

   {
    if {(char != PI || 3.14);
    printf("Incorect value\n");
}

    else {
    printf("Thank you, the circumference is now.\n");
    printf("%f", (r) * pi *2);
}


return 0;

}
#包括
#定义pi 3.14159
int main()
{
浮子r;
char-PI;
/*周长程序*/
printf(“这是一个计算周长的程序。\n”);
printf(“请输入半径。\n”);
scanf(“%f”、&r);
printf(“请输入PI\n”);
PI=getchar();
}
{
如果{(char!=PI | | 3.14);
printf(“不正确值\n”);
}
否则{
printf(“谢谢,周长现在是。\n”);
printf(“%f”,(r)*pi*2);
}
返回0;
}

我正在试图找出这个错误,我确实搜索过了,但是我的具体问题没有真正出现。如果有帮助,就在“If”语句开始之前。我可能使用了太多的“{”?

您正在第一次终止主函数
}
字符。您的左大括号和右大括号匹配不均,这就是问题的原因。您的
if
语句也有问题。这

if {(char != PI || 3.14);
应读为

if (char != PI || 3.14)
或者更具体地说,整个if-else应该是

if (char != PI || 3.14)
{
   printf("Incorect value\n");
} else {
   printf("Thank you, the circumference is now.\n");
   printf("%f", (r) * pi *2);
}

我已经用注释指出了错误。养成习惯对
#define
宏使用大写,而不是对变量使用大写。最后,你的
if
的条件应该是
if(PI!=PI)
。删除
if
,以及
之后的

#包括
#定义pi 3.14159
int main()
{
浮子r;
char-PI;
/*周长程序*/
printf(“这是一个计算周长的程序。\n”);
printf(“请输入半径。\n”);
scanf(“%f”、&r);
printf(“请输入PI\n”);
PI=getchar();
}//这是错误的来源,因为'main()'在此`}之后结束
{
if(PI!=PI)//在if的条件之后使用了一个`;`,在它之前使用了一个额外的{
printf(“不正确值\n”);
}
否则{
printf(“谢谢,周长现在是。\n”);
printf(“%f”,(r)*pi*2);
}
返回0;
}

Main终止于
PI=getchar();}
从那时起,每个括号都是错误的。谢谢!感谢,我以后应该使用它吗?你认为scanf(“PI\n”);更有意义吗?因为它是用户输入?@MarkusAndrewWhite如果你使用
scanf()
,它应该是
scanf(%c,&PI)
而不是
scanf(“PI\n”)
@Armin真的吗?这是你看到的唯一错误吗?@MarkusAndrewWhite Dude,很高兴知道你在美国陆军服役,尽管时间紧迫,但仍然对编程如此感兴趣!!谢谢!我很感激!这修复了我的另一个错误,现在我在“char”之前得到了预期的表达式。有任何输入。@Mathematicsiany如果(char!=PI | | 3.14)是正确的C语法吗?它意味着什么?我只是不明白如果
的条件是
的话,如何将一些笨拙的表达式声明为
char
中键入!!@SheerFish是的,这是非常没有意义的,很明显,我只是想指出语法错误,纠正后允许代码编译。我同意测试等同于
char
float
的重复性是毫无意义的,但我不能猜测他的代码应该做什么。我只是想让它编译,然后用户可以根据需要计算出代码中的运行时错误。@MarkusAndrewWhite恐怕您的代码中还有更多错误。让我再检查一下。等等…@MarkusAndrewWhite嘿Marcus,这是正确的程序,我没有在这里编辑它,否则指出不正确的行和语法将是困难的。@MarkusAndrewWhite你的程序中有很多东西是多余的。此外,期望输入的
pi
值和
\define
'd值匹配为
pi
不是一个精确的数字。由于您对C似乎很陌生,鉴于您对
scanf()
的理解,我们不要偏离您提出的主要问题。如果您还有疑问,欢迎您发布更多问题。@MarkusAndrewWhite在您的编译器上运行我在ideone.com上发布的代码,并在提示时将半径作为输入。
#include <stdio.h>
#define pi 3.14159



int main()
{
  float r;
  char PI;

/*Program for circumference. */

    printf(" This is a program that will calculate circumference.\n");
    printf("Please put in your radius.\n");

    scanf("%f", &r);
    printf("Please input PI\n");
    PI = getchar();
 } //This is the source of error as `main()` ends after this `}'

   {
    if(PI!=pi)  //You have used a `;` after if's condition & an extra '{' before it
    printf("Incorect value\n");
}

    else {
    printf("Thank you, the circumference is now.\n");
    printf("%f", (r) * pi *2);
}


return 0;

}