新人求解答:debug error错误

sinat_36329247 2016-10-08 03:21:50
#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;
}



以上是代码,运行后输入第一个数字就跳出了下面的截图,请问问题出在哪里?
...全文
1131 5 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
天外怪魔 2016-10-08
  • 打赏
  • 举报
回复
已经说得很清除了,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;
  • 打赏
  • 举报
回复
你是来搞笑的吗,float类型用%n?
dustpg 2016-10-08
  • 打赏
  • 举报
回复
无时警告/错误的新人太可怕了 1> main.c 1>c:\users\administrator\documents\visual studio 15\projects\project1\project1\main.c(10): warning C4474: printf: 格式字符串中传递的参数太多 1> c:\users\administrator\documents\visual studio 15\projects\project1\project1\main.c(10): note: 占位符和其参数预计 0 可变参数,但提供的却是 1 参数 1>c:\users\administrator\documents\visual studio 15\projects\project1\project1\main.c(11): warning C4477: “scanf”: 格式字符串“%d”需要类型“int *”的参数,但可变参数 1 拥有了类型“float *” 1>c:\users\administrator\documents\visual studio 15\projects\project1\project1\main.c(12): warning C4474: printf: 格式字符串中传递的参数太多 1> c:\users\administrator\documents\visual studio 15\projects\project1\project1\main.c(12): note: 占位符和其参数预计 0 可变参数,但提供的却是 1 参数 1>c:\users\administrator\documents\visual studio 15\projects\project1\project1\main.c(13): warning C4477: “scanf”: 格式字符串“%d”需要类型“int *”的参数,但可变参数 1 拥有了类型“float *” 1>c:\users\administrator\documents\visual studio 15\projects\project1\project1\main.c(14): warning C4474: printf: 格式字符串中传递的参数太多 1> c:\users\administrator\documents\visual studio 15\projects\project1\project1\main.c(14): note: 占位符和其参数预计 0 可变参数,但提供的却是 1 参数 1>c:\users\administrator\documents\visual studio 15\projects\project1\project1\main.c(15): warning C4477: “scanf”: 格式字符串“%c”需要类型“char *”的参数,但可变参数 1 拥有了类型“int” 1>c:\users\administrator\documents\visual studio 15\projects\project1\project1\main.c(14): error C4700: 使用了未初始化的局部变量“doperation”
paschen 2016-10-08
  • 打赏
  • 举报
回复

#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;
}
赵4老师 2016-10-08
  • 打赏
  • 举报
回复
崩溃的时候在弹出的对话框按相应按钮进入调试,按Alt+7键查看Call Stack即“调用堆栈”里面从上到下列出的对应从里层到外层的函数调用历史。双击某一行可将光标定位到此次调用的源代码或汇编指令处,看不懂时双击下一行,直到能看懂为止

70,020

社区成员

发帖
与我相关
我的任务
社区描述
C语言相关问题讨论
社区管理员
  • C语言
  • 花神庙码农
  • 架构师李肯
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧