C中的问题在if条件上带有括号

    #include<stdio.h>
 
void TOH(int,char,char,char);
 int n;
void main()
{
    printf("How many plates?");
    scanf("%d",&n);
    TOH(n,'A','B','C');
}

if (n==1)
    printf("A -> B n");

if (n==2) { 
    printf("A->C n");
    printf("A->B n");
    printf("C->B n");
    }

 
void TOH(int n,char x,char y,char z)
{
    if(n>2)
    {
        TOH(n-1,x,z,y);
        printf("n%c -> %c",x,y);
        TOH(n-1,z,y,x);
    }
}

我有输出错误:

turnuri.c:12:1: error: expected identifier or '('
if (n==1)
^
turnuri.c:15:1: error: expected identifier or '('
if (n==2) { 
^
1 warning and 2 errors generated.

为什么?谢谢

回答

if语句只能在函数体内使用。代码应该是这样的:

#include<stdio.h>
 
void TOH(int,char,char,char);
int n;
void main() {
    printf("How many plates ?");
    scanf("%d",&n);
    TOH(n, 'A', 'B', 'C');

    if (n == 1) {
        printf("A -> B n");
    }
    
    if (n == 2) { 
         printf("A -> C n");
         printf("A -> B n");
         printf("C -> B n");
    }
}
 
void TOH(int n, char x, char y, char z)
{
    if (n > 2) {
        TOH(n - 1, x, z, y);
        printf("n%c -> %c", x, y);
        TOH(n - 1, z, y, x);
    }
}


以上是C中的问题在if条件上带有括号的全部内容。
THE END
分享
二维码
< <上一篇
下一篇>>