一个算数的程序,语法错误:case,3个非法的case 非法的default,语法错误:“}”, 语法错误:“while”, 语法错误:“}”, 语法错误:缺少“;”(在”}“的前面)


void menu()
{
       printf("#####################################\n");
       printf("##########  1.add       2.sub########\n");
       printf("########### 3.mul       4.div########\n");
       printf("################  0.exit ############\n");
}
int add(int x, int y)
{
   return x + y;
}
int sub(int x, int y)
{
   return x - y;
}
int mul(int x, int y)
{
   return x * y;
}
int div(int x, int y)
{
   return x / y;
}
int swich(int n);
int main()
{
    
     int ipu = 0;
     int x = 0;
     int y = 0;
   do
   {
  
      menu();
      printf("请输入选项上的数字: \n");
      scanf("%d", &ipu);
      printf("请输入两个要计算的数字\n");
      scanf("%d%d", &x, &y);


      swich(ipu)
      {
        case 1:
               printf("%d\n", add(x, y));
               break;
        case 2:
               printf("%d\n", sub(x, y));
               break;
        case 3:
               printf("%d\n", mul(x, y));
               break;
         case 4:
               printf("%d\n", div(x, y));
               break;
         case 0:
                printf("退出计算机\n");
                break;
         default:
                printf("除以上数字之外不能输入其他数字,请输入以上数字\n");
                break;     
      }
   } while (ipu);
}

switch

#include <stdio.h>
void menu()
{
       printf("#####################################\n");
       printf("##########  1.add       2.sub########\n");
       printf("########### 3.mul       4.div########\n");
       printf("################  0.exit ############\n");
}
int add(int x, int y)
{
   return x + y;
}
int sub(int x, int y)
{
   return x - y;
}
int mul(int x, int y)
{
   return x * y;
}
int div(int x, int y)
{
   return x / y;
}
int swich(int n);
int main()
{
    
     int ipu = 0;
     int x = 0;
     int y = 0;
   do
   {
  
      menu();
      printf("请输入选项上的数字: \n");
      scanf("%d", &ipu);
      printf("请输入两个要计算的数字\n");
      scanf("%d%d", &x, &y);
 
 
      switch(ipu)
      {
        case 1:
               printf("%d\n", add(x, y));
               break;
        case 2:
               printf("%d\n", sub(x, y));
               break;
        case 3:
               printf("%d\n", mul(x, y));
               break;
         case 4:
               printf("%d\n", div(x, y));
               break;
         case 0:
                printf("退出计算机\n");
                break;
         default:
                printf("除以上数字之外不能输入其他数字,请输入以上数字\n");
                break;     
      }
   } while (ipu);
}

不知道你这个问题是否已经解决, 如果还没有解决的话:
  • 以下回答来自chatgpt:

    针对算数程序中出现的语法错误,包括非法的case和default,缺少分号等问题,可以根据编译器的报错信息来进行逐步修复。常见的语法错误包括:

    1.非法的case和default:在switch语句中,case和default后面必须跟着一个语句块,否则会出现语法错误。例如:

    switch (a) {
      case 1:
        // some code here
        break;
      case 2:
        // some code here
        break;
      default:
        // some code here
    }
    

    2.缺少分号:在语句末尾缺少分号也会导致语法错误。例如:

    int a = 10
    int b = 20;
    

    3.while循环语法错误:while循环语法错误主要有三种,分别是缺少括号、缺少分号和缺少花括号。例如:

    while i < 10 {
      // some code here
    }
    
    while (i < 10)
      // some code here;
    
    while (i < 10) 
      // some code here
    

    对于以上语法错误,可以根据编译器的报错信息逐步修复。下面是一个示例修复缺少分号的语法错误的代码:

    int a = 10;
    int b = 20
    int c = a + b;
    

    修改后:

    int a = 10;
    int b = 20;
    int c = a + b;
    

    对于while循环的语法错误,可以参考以下代码进行修复:

    int i = 0;
    while (i < 10) {
      // some code here
      i++;
    }
    

如果你已经解决了该问题, 非常希望你能够分享一下解决方案, 写成博客, 将相关链接放在评论区, 以帮助更多的人 ^-^