【发布时间】:2018-09-07 03:51:10
【问题描述】:
我是一名 Java 程序员,试图为一个班级学习 C 语言,但我无法理解这一点。没有理由为什么这不应该工作,但事实并非如此。我正在尝试编写一个简单的计算器应用程序,无论我如何编写它,我输入的第一个数字(变量 a)最终都是 0,但第二个很好。以 5 + 6 作为输入,输出为 6。我错过了什么?
#include <stdio.h>
int main()
{
long int a, b, c;
char op;
c = 0;
printf("Enter the expression: ");
scanf("%ld %s %ld", &a, &op, &b);
switch(op){
case('+'): c = a+b; break;
case('-'): c = a-b; break;
case('*'): c = a*b; break;
case('/'): c = a/b; break;
default: break;
}
printf("\n%ld", c);
return 0;
}
【问题讨论】:
-
%c是一个字符,而不是%s。scanf也有一个返回值,您应该检查它以确保它读取您期望的项目数。 -
您应该使用
%c作为运算符,而不是%s。 -
谢谢。修复了它,但我仍然得到相同的输出。我在网上查找的每个 scanf 教程都告诉我这是设置它的正确方法
-
刚刚开始工作。出于某种原因,当我删除 %ld %c 和 %ld 之间的空格并相应地调整我的输入 (5+6) 时,它可以工作。
-
请提供 *input*/a 会话的示例,作为从您输入输入并显示相应输出的控制台复制粘贴