【问题标题】:Issues in C with brackets on if conditionC中的问题在if条件下带有括号
【发布时间】:2021-02-16 17:51:55
【问题描述】:
    #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 什么时候执行??

标签: c output


【解决方案1】:

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);
    }
}

【讨论】:

    【解决方案2】:

    您的if-语句出现在main() 函数之外,而不是在其中。

    这应该可行:

    #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);
        }
    }
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2021-04-10
      • 2012-11-09
      • 2021-10-07
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多