请问这个模拟单步计算器的程序为什么不出结果

心宁神朗 2019-03-03 07:42:36
新人刚学C++,照网课打的程序如下,不知道为什么不出结果
#include <stdio.h>
int main()
{
float a, b;
char w;
printf("please input e#e:");
scanf_s("%f",&a);
scanf_s("%c",&w);
scanf_s("%f",&b);
switch (w)
{
case '+':a = a + b; break;
case '-':a = a - b; break;
case '/':a = a / b; break;
case '*':a = a * b;
}
printf("%.2f\n", a);
}
只提示我:返回代码为: -1073741819。
...全文
217 4 打赏 收藏 转发到动态 举报
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
心宁神朗 2019-03-04
  • 打赏
  • 举报
回复
今天试了次自己的程序好使了,也不知道为什么,谢谢,分给你吧,我也不知道分能干什么
yeyingting30 2019-03-03
  • 打赏
  • 举报
回复
VC6下的代码如果用高版本VS来运行,
有时是头文件要改,相应的函数也要改一些,如上面的键盘输入,
有时还要改项目属性,项目属性要改好几个地方,

好麻烦的,代码少还好,多的话看着就头疼,
yeyingting30 2019-03-03
  • 打赏
  • 举报
回复
那是因为VC6.0过时了,vs2017向下兼容时有些函数做得不好,一句两说不清
我在vs2015试了下代的代码,函数scanf_s("%c",&w)输入运算符时居然不对,我改动后如下就可以了

#include<iostream>

using namespace std;
int main()
{
float a, b;
char w;
printf("please input e#e:");

cin >> a;
cin >> w;
cin >> b;
switch (w)
{
case '+':a = a + b; break;
case '-':a = a - b; break;
case '/':a = a / b; break;
case '*':a = a * b;
}
printf("%.2f\n", a);

system("pause");
return 0;
}



上面代码代在VS2017上再试下,应该可以了,

最后记得结贴给分!新人要养成好习惯,及时结贴给分!
心宁神朗 2019-03-03
  • 打赏
  • 举报
回复
用visual c++ 6.0就正确运行出结果,用vs2017就不出结果并且提示:返回代码为: -1073741819,为什么?

33,311

社区成员

发帖
与我相关
我的任务
社区描述
C/C++ 新手乐园
社区管理员
  • 新手乐园社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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