c - 我对 C 编码很陌生,我不知道为什么我的粗略计算器代码不起作用
问题描述
我认为它与第二个 scanf 函数或 if/else 语句有关。
#include <stdio.h>
int main()
{
int n1;
int n2;
char op;
printf("insert first number: ");
scanf("%d", &n1);
printf("Insert operation (+, -, *, /): ");
scanf("%c", &op);
printf("insert second number: ");
scanf("%d", &n2);
if(op='+')
{
printf("%d + %d = %d", n1, n2, n1+n2);
}
else if(op='-')
{
printf("%d - %d = %d", n1, n2, n1-n2);
}
else if(op='*')
{
printf("%d * %d = %d", n1, n2, n1*n2);
}
else if(op='/')
{
printf("%d / %d = %d", n1, n2, n1/n2);
}
else
{
printf("error [use +, -, *, /]");
}
当我运行它时,它等待我输入第一个数字,然后打印第二个提示,但不是等待我输入操作,而是直接跳到打印第三个提示,我不知道为什么。
解决方案
试试这个。在 switch 案例中尝试此编码。你会得到预期的结果。使用开关(ch);并在每个案例后休息。
推荐阅读
- json - 在 null 上调用了方法“[]”。接收者:null 尝试调用:[](0) !我在这里做错了什么?
- mysql - MySQL - 你如何重写它以使用 ONLY_FULL_GROUP_BY
- r - Rails - 在临时表上创建和操作?
- jdbc - DB2 JDBC Windows 身份验证
- html - 如何在表格上创建圆角并为整个表格和列保留表格边框?
- sql - 如何在 PostgreSQL 上存储 MM/YYYY 日期?
- javascript - 如何将 js 日期时间字符串转换为 python 日期时间对象
- java - FileNotFound 异常,即使文件在 java 中的监视服务期间就位
- ansible - 失败的!=> {"changed": false, "msg": "apt cache update failed"} 尝试
- python - 使用pandas python过滤并合并多个单元格为一个单元格Excel