新手C语言程序作业求教!!!!!!!

sinat_27077631 2015-04-02 01:26:45
#include <stdio.h>
void fac(int n, int m, char a, int sum1);
int main()
{
int n, m, sum1;
char a;
printf("请输入算式:");
scanf_s("%d%c%d=%d", &n, &a, &m, &sum1);
fac(n, m, a, sum1);
return 0;
}
void fac(int n, int m, char a, int sum1)
{
int sum2;
switch (a)
{
case '+':
sum2 = n + m;
break;
case '-':
sum2 = n - m;
break;
case '*':
sum2 = n * m;
break;
case '/':
sum2 = n / m;
break;
case '%':
sum2 = n % m;
break;
}
if (sum1 == sum2)
{
printf("结果正确\n");
}
else
{
printf("结果错误\n");
printf("正确结果为:%d\n", sum2);
}
}

这个程序在VS2013上调试的时候提示
0x61FEE541 (msvcr120d.dll) (ConsoleApplication69.exe 中)处有未经处理的异常: 0xC0000005: 写入位置 0x011C110E 时发生访问冲突。
但是用VC++6.0就可以完美运行,请问问题在哪里?
...全文
121 5 打赏 收藏 转发到动态 举报
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
highnewrain 2015-04-05
  • 打赏
  • 举报
回复
引用 4 楼 sinat_27077631 的回复:
[quote=引用 3 楼 u010005508 的回复:] scanf_s()在读取字符时必须提供一个数字以表明最多读取多少位字符。所以你要这样写scanf_s("%d%c%d=%d", &n, &a,1, &m, &sum1)才行!或者改用scanf()函数!
VS用scanf的话会报错啊[/quote] 怎么会报错了?你咋用的?
sinat_27077631 2015-04-02
  • 打赏
  • 举报
回复
引用 3 楼 u010005508 的回复:
scanf_s()在读取字符时必须提供一个数字以表明最多读取多少位字符。所以你要这样写scanf_s("%d%c%d=%d", &n, &a,1, &m, &sum1)才行!或者改用scanf()函数!
VS用scanf的话会报错啊
highnewrain 2015-04-02
  • 打赏
  • 举报
回复
scanf_s()在读取字符时必须提供一个数字以表明最多读取多少位字符。所以你要这样写scanf_s("%d%c%d=%d", &n, &a,1, &m, &sum1)才行!或者改用scanf()函数!
此后三年 2015-04-02
  • 打赏
  • 举报
回复
代码里不让搞颜色,改成这样 scanf_s("%d%c%d=%d", &n, &a, 1, &m, &sum1);
此后三年 2015-04-02
  • 打赏
  • 举报
回复
在vs2013中运行的时候,把这句话改一下。

scanf_s("%d%c%d=%d", &n, &a, 1, &m, &sum1);

69,373

社区成员

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

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