这是我尝试用 C 语言构建的一个简单计算器的代码(我正在学习 C):
#include <stdio.h>
#include <stdlib.h>
#include <windows.h>
int main()
{
char Operation;
printf("Welcome to Double-Figure Calculator!\n\n");
Sleep(1000);
printf("What operation would you like to do? (+, -, *, /,) \n");
Sleep(1000);
scanf("%c\n\n", Operation);
Sleep(1000);
if (Operation == '+'){
int FirstNumber;
int SecondNumber;
printf("Please enter your first number\n");
scanf("%s\n\n", &FirstNumber);
printf("Please enter your second number\n");
scanf("%s\n\n", &SecondNumber);
Sleep(1000);
printf("Calculating");
Sleep(1000);
printf(".");
Sleep(1000);
printf(".");
Sleep(1000);
printf(".\n\n");
printf("Your calculation is %d\n\n", FirstNumber + SecondNumber);
system("Pause");
}
if (Operation == '-'){
int OneFirstNumber;
int OneSecondNumber;
printf("Please enter your first number\n");
scanf("%s\n\n", &OneFirstNumber);
printf("Please enter your second number\n");
scanf("%s\n\n", &OneSecondNumber);
Sleep(1000);
printf("Calculating");
Sleep(1000);
printf(".");
Sleep(1000);
printf(".");
Sleep(1000);
printf(".\n\n");
printf("Your calculation is %d\n\n", OneFirstNumber - OneSecondNumber);
system("Pause");
}
if (Operation == '*'){
int TwoFirstNumber;
int TwoSecondNumber;
printf("Please enter your first number\n");
scanf("%s\n\n", &TwoFirstNumber);
printf("Please enter your second number\n");
scanf("%s\n\n", &TwoSecondNumber);
Sleep(1000);
printf("Calculating");
Sleep(1000);
printf(".");
Sleep(1000);
printf(".");
Sleep(1000);
printf(".\n\n");
printf("Your calculation is %d\n\n", TwoFirstNumber * TwoSecondNumber);
system("Pause");
}
if (Operation == '/'){
int ThreeFirstNumber;
int ThreeSecondNumber;
printf("Please enter your first number\n");
scanf("%s\n\n", &ThreeFirstNumber);
printf("Please enter your second number\n");
scanf("%s\n\n", &ThreeSecondNumber);
Sleep(1000);
printf("Calculating");
Sleep(1000);
printf(".");
Sleep(1000);
printf(".");
Sleep(1000);
printf(".\n\n");
printf("Your calculation is %d\n\n", ThreeFirstNumber / ThreeSecondNumber);
system("Pause");
}
system("pause");
return 0;
}
问题是每当我运行代码并输入一个操作(+、-、* 或/),然后按 Enter 键时,什么也没有发生,即使我有 if 语句来执行程序的其余部分。我不明白我在这里做错了什么。有什么帮助吗? (抱歉,我是编程新手,正处于学习 C 的早期阶段)。
最佳答案
您的代码中有一些可以改进的错误。
第一个,使用scanf时,必须传递变量地址来存储数据,例如:
scanf("%c", &Operation);
避免在 scanf 中使用“\n\n”,它告诉您希望从用户输入中返回一个字符和两个返回值。如果用户不这样做,您的代码将无法正常工作。
我注意到在大多数情况下,关于数据类型,您使用的 scanf 都是错误的。如果想用scanf从用户那里获取整数值,则必须使用相应的转换%d来获取整数值,例如:
scanf("%d\n", &secondNumber);
当您使用 %s 时,您表示您希望从用户输入中获得一个字符串,如果您将字符串存储到整数变量中,它可能会使您的代码崩溃。
还有一点与使用if语句切换用户的输入有关,最好使用switch-case语句,例如:
switch(operation) {
case '+':
// do add operation
break;
case '-':
// do sub operation
break;
default:
// return some error message.
}
在 switch-case 语句中,“默认”是在没有任何情况与您期望的情况不匹配时要执行的例程。
我认为这就是让代码正常工作所需要做的全部事情。
关于c - 如何在C中使用带有字符的if语句,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32445305/