Code Bye

求指导答:debug error错误

#include <stdio.h>
int main(void)

{
	float number_1=0,number_2=0;
	int doperation;
	//输入界面
	printf("请先输入第一个数字,然后再输入第二个数字,最后输入运算符\n");
	printf("请先输入第一个数字:\n",number_1);
	scanf("第一个数字:%d\n",&number_1);
	printf("请再输入第二个数字:\n",number_2);
	scanf("第二个数字:%d\n",&number_2);
	printf("请输入运算符:\n",doperation);
	scanf("输入运算符:%c\n",doperation);
	//逻辑判断区域
	switch (doperation)
	{
	case "+":

			printf("结果为:%f",number_1+number_2);
			break;
	case "-":

			printf("结果为:%f",number_1-number_2);
			break;
	case "*":

			printf("结果为:%f",number_1*number_2);
			break;
	case "/":

		printf("结果为:%f",number_1/number_2);
			break;
	default:
		printf("输出错误");

	}
	getchar();
	return 0;
}

以上是代码,运行后输入第一个数字就跳出了下面的截图,问一下问题出在哪里?

解决方案

10

已经说得很清除了,doperation没有初始化。
根源是这句:
printf(“请输入运算符:\n”,doperation);
看样式是笔误写错了。
其他的问题:
scanf不能用%d格式串来输入float类型数据
scanf(“%c”之前要清理输入缓冲区,否则会获取上次输入的回车符。
本人给你改了下,vs2008调试通过,有问题给本人留言:
float number_1=0,number_2=0;
char doperation = “\0”;
//输入界面
printf(“请先输入第一个数字,然后再输入第二个数字,最后输入运算符\n”);
printf(“请先输入第一个数字:\n”,number_1);
scanf(“%f”,&number_1);
printf(“请再输入第二个数字:\n”,number_2);
scanf(“%f”,&number_2);
getchar();
printf(“请输入运算符:\n”);
scanf(“%c”,&doperation);
//逻辑判断区域
switch (doperation)
{
case “+”:
printf(“结果为:%f”,number_1+number_2);
break;
case “-“:
printf(“结果为:%f”,number_1-number_2);
break;
case “*”:
printf(“结果为:%f”,number_1*number_2);
break;
case “/”:
printf(“结果为:%f”,number_1/number_2);
break;
default:
printf(“输出错误”);
}
getchar();
return 0;

5

崩溃的时候在弹出的对话框按相应按钮进入调试,按Alt+7键查看Call Stack即“调用堆栈”里面从上到下列出的对应从里层到外层的函数调用历史。双击某一行可将光标定位到此次调用的源代码或汇编指令处,看不懂时双击下一行,直到能看懂为止

20

#include <stdio.h>
int main(void)
{
	float number_1=0,number_2=0;
	char doperation;
	//输入界面
	printf("请先输入第一个数字,然后再输入第二个数字,最后输入运算符\n");
	printf("请先输入第一个数字:\n");
	scanf("%f",&number_1);
	printf("请再输入第二个数字:\n");
	scanf("%f",&number_2);
	printf("请输入运算符:\n");
	getchar();
	scanf("%c",&doperation);
	//逻辑判断区域
	switch (doperation)
	{
	case "+":
		printf("结果为:%f",number_1+number_2);
		break;
	case "-":
		printf("结果为:%f",number_1-number_2);
		break;
	case "*":
		printf("结果为:%f",number_1*number_2);
		break;
	case "/":
		printf("结果为:%f",number_1/number_2);
		break;
	default:
		printf("输出错误");
	}
	getchar();
	return 0;
}

CodeBye 版权所有丨如未注明 , 均为原创丨本网站采用BY-NC-SA协议进行授权 , 转载请注明求指导答:debug error错误