【发布时间】:2018-04-17 13:18:14
【问题描述】:
我试图用 C 语言制作一个计算器。 我写了那个代码
#include <stdio.h>
int main()
{
char proc;
float x,y,z;
printf("Enter the proccess you need to do :\nA) +\nB) -\nC) *\nD) /\n>>> ");
scanf("%c", &proc);
if (proc !='A' || proc !='a' || proc !='B' || proc !='b' || proc !='C' || proc !='c' || proc !='D' || proc !='d' )
{
printf("enter a valid charecter.\n");
return 0;
}
else
printf("Enter your first number: ");
scanf("%f", &x);
printf("Enter your seconde number: ");
scanf("%f", &y);
//Start of IF statment
if (proc =='A' || proc == 'a')
{
z = x+y;
printf("The sum is %.2f:\n",z);
}
else if (proc =='B' || proc == 'b')
{
z = x-y;
printf("The sum is %.2f:\n",z);
}
else if (proc =='B' || proc == 'b')
{
z = x*y;
printf("The sum is %.2f:\n",z);
}
else if (proc =='B' || proc == 'b')
{
z = x/y;
printf("The sum is %.2f:\n",z);
}
else printf("Enter a valid charecter.\n");
//End of IF statment
return 0;
}
但是当我尝试运行它并尝试例如 A 时,它显示“输入有效字符”。如果我键入非这些字符 A、B、C、D 也是小写的,我需要它。 我做错了吗?
【问题讨论】:
-
如果
proc不等于'A'或proc不等于'a'总是正确的。稍微思考一下逻辑。 -
将
proc != 'A' || proc != 'a' ...更改为proc != 'A' && proc != 'a' ... -
您可能还想更正一些文本。现在所有案例都说
The sum is ... -
离题:1)第一个
else可以删除2)总是检查scanf返回的值3)你检查B和b三个地方4)最后一个else和printf可以删除
标签: c operator-keyword