我是C语言的初学者。这是C语言计算器的代码,但在switch语句开始的行上,switch语句出现错误,提示我在{之前为{之前的期望())。代码如下:
int main()
{
double num_1 = 0.0;
double num_2 = 0.0;
double n = 0.0;
double Total = 0.0;
printf("\nEnter 1 for add:\n ");
printf("Enter 2 for subtract:\n ");
printf("Enter 3 for division:\n ");
printf("Enter 4 for multiplication:\n ");
printf("Enter 5 for percentage:\n ");
printf("Enter 6 for power:\n ");
scanf("%d", & n);
printf("Enter first number: ");
scanf("%d", & num_1);
printf("Enter second number: ");
scanf("%d", & num_2);
switch {
case 1 : Total=num_1+num_2;
printf("The add is : %d\n",Total);
break;
case 2 : Total=num_1-num_2;
printf("The Subtract is : %d\n",Total);
break;
case 3 : Total=num_1/num_2;
printf("The division is : %d\n",Total);
break;
case 4 : Total=num_1*num_2;
printf("The multiplication is : %d\n",Total);
break;
case 5 : Total=num_1%num_2;
printf("The percentage is : %d\n",Total);
break;
case 6 : Total=; pow(num_1, num_2)
printf("The power is : %d\n",Total);
break;
default:
printf("No Result\n");
break;
}
return 0;
}
最佳答案
……在switch语句中显示“ {
这是因为线
switch {
一定是
switch (n) {
其他一些评论:
1)在
double num_1 = 0.0;
double num_2 = 0.0;
double n = 0.0;
double Total = 0.0;
初始化是没有用的,因为您将(尝试)在之后重新分配变量
n的类型应因使用而更改为整数
2)在
scanf("%d", & num_1);
....
scanf("%d", & num_2);
%d
表示您输入了一个int,但您给出了一个指向double的指针,这是无效的例如,将
%d
替换为%g
3)在
printf("The add is : %d\n",Total);
...
printf("The Subtract is : %d\n",Total);
...
printf("The division is : %d\n",Total);
...
printf("The multiplication is : %d\n",Total);
...
printf("The percentage is : %d\n",Total);
...
printf("The power is : %d\n",Total);
格式
%d
表示您打印一个整数,但给出了双精度值,例如将%d
替换为%g
4进
case 6 : Total=; pow(num_1, num_2)
“,”放置错误,必须
case 6 : Total= pow(num_1, num_2);
5)您不检查是否要除以0或取模
6)您不检查您的scanf返回值1,因此是否输入了有效值(也没有输入EOF)
7)
printf("No Result\n");
可以替换为printf("Invalid command\n");
或puts("Invalid command");
关于c - 在switch语句之后是否需要添加一些内容,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/55130721/