问题遇到的现象和发生背景
不知道什么地方出了错,下方检错的行数不对
问题相关代码,请勿粘贴截图
#include <stdio.h>
#include <math.h>
int main(int argc, const char *argv[])
{
int data1,data2,xunhuan4,mode = 1;
char op;
start:
printf("该计算器有普通计算模式(1)特殊模式(2):\n");
scanf("%d",&mode);
if(mode == 1)
{
printf("||||||||||||||||||||模式1||||||||||||||||||||||||||\n");
printf(" \n \n \n data1 op data2\n");
input:
scanf("%d %c %d",&data1,&op,&data2);
switch(op)
{
case '+':
printf("%d %c %d = %d\n",data1,op,data2,data1+data2);
break;
case '-':
printf("%d %c %d = %d\n",data1,op,data2,data1-data2);
break;
case '*':
printf("%d %c %d = %d\n",data1,op,data2,data1*data2);
break;
case '/':
if(data2 == 0)
{
printf("分母是零,请重新输入:");
goto input;
}
else
{
printf("%d %c %d = %.3f\n",data1,op,data2,(float)data1/data2);//防止整除取整,强制转换data1为浮点型
break;
}
default: printf("该计算器没有此功能,请重新输入:");
goto input;
}
goto loop;
}
else if(mode == 2)
{
printf("||||||||||||||||||||模式2|||||||||||||||||||||||||\n \n \n \n");
printf("(1)开平方 (2)平方 \n");
printf("(3)进制转换 (4)正在开发...\n");
int mode_2 == 0;
printf("\n \n请输入模式(1/2/3/4): ");
scanf("%d",&mode_2);
if(mode_2 == 1)
{
float mode_2_var1;
printf("_--------------------------模式1(开平方)---------------------\n \n");
printf("输入格式为 --- num :");
scanf("%f",&mode_2_var1);
printf("%f",sqrt(mode_2_var1));
goto loop;
}
else if(mode_2 == 2)
{
printf("----------------------------模式2(平方)------------------------\n \n");
printf("输入格式为 ---a b----(a的b次方)");
float mode_2_2_var1,mode_2_2_var2;
scanf("%f %f",&mode_2_2_var1,&mode_2_2_var2);
printf("%.1f的%.1f次方为%.2f\n",mode_2_2_var1,mode_2_2_var2,pow(mode_2_2_var1,mode_2_2_var2));
goto loop;
}
else if(mode_2 == 3)
{
printf("----------------------------模式3(进制转换) ---------------------\n \n");
printf("请先输入数据的进制:");
int mode_2_3_var3;
jinzhi:
scanf("%d",&mode_2_3_var3);
printf("输入格式为-----a c-----(a的b进制表示)(只能转换16,10,8进制)--------");
int mode_2_3_var1,mode_2_3_var2,mode_2_3_jinzhi,mode_2_3_number;
jinzhi2:
switch (mode_2_3_var3){//输入数据的键入格式
case 8:
scanf("%o %d",&mode_2_3_number,&mode_2_3_jinzhi);
break;
case 10:
scanf("%d %d",&mode_2_3_number,&mode_2_3_jinzhi);
break;
case 16:
scanf("%x %d",&mode_2_3_number,&mode_2_3_jinzhi);
break;
default: printf("你的进制数输入错误,请重新输入:");
goto jinzhi;
}
switch(mode_2_3_jinzhi)
{
case 8:
printf("%o\n",mode_2_3_number);
break;
case 10:
printf("%d\n",mode_2_3_number);
break;
case 16:
printf("%#x\n",mode_2_3_number);
break;
default:
printf("进制输入错误,请重新输入:");
goto jinzhi2;
}
}
else if(mode_2 == 4)
{
printf("开发人员正在开发,敬请期待!\n");
goto loop;
}
loop:
printf("如果要继续输入请输入1,退出请按0\n");
scanf("%d",&xunhuan4);
if(xunhuan4 == 1)
{
goto start;
}
else if(xunhuan4 == 0)
{
goto end;
}
}
end:
printf("--------------------欢迎使用此计算器,再见!”---------------------------\n");
return 0;
}
运行结果及报错内容
Compiling
简单计算器全.c
D:\简单计算器全\简单计算器全.c(47) : error C2143: syntax error : missing ';' before 'type'
D:\简单计算器全\简单计算器全.c(49) : error C2065: 'mode_2' : undeclared identifier
D:\简单计算器全\简单计算器全.c(63) : error C2143: syntax error : missing ';' before 'type'
D:\简单计算器全\简单计算器全.c(64) : error C2065: 'mode_2_2_var1' : undeclared identifier
D:\简单计算器全\简单计算器全.c(64) : error C2065: 'mode_2_2_var2' : undeclared identifier
D:\简单计算器全\简单计算器全.c(72) : error C2143: syntax error : missing ';' before 'type'
D:\简单计算器全\简单计算器全.c(74) : error C2065: 'mode_2_3_var3' : undeclared identifier
D:\简单计算器全\简单计算器全.c(76) : error C2143: syntax error : missing ';' before 'type'
D:\简单计算器全\简单计算器全.c(80) : error C2065: 'mode_2_3_number' : undeclared identifier
D:\简单计算器全\简单计算器全.c(80) : error C2065: 'mode_2_3_jinzhi' : undeclared identifier
执行 cl.exe 时出错.
简单计算器全.obj - 1 error(s), 0 warning(s)
我的解答思路和尝试过的方法
查错时找不到错误
我想要达到的结果
没有错误并且可以正常运行