当这种情况出现时,它不会采取以下行动 我做错了什么!?
int main(){
printf("Press t/T for Tan x\nPress s/S for Sin x\nPressc/C for Cos x\n\nPress * for exit the program..");
scanf("%c",&choice);
if(choice==s||choice==S){
printf("Enter....etc");
......etc
这种情况根本不适用于我 请帮忙
答案 0 :(得分:1)
您需要在使用之前声明choice
:
char choice;
然后您的条件应如下:
if(choice=='s'||choice=='S')
choice
属于char
类型,因此您需要将其与char
进行比较。您可以使用单引号轻松制作字面值。
答案 1 :(得分:0)
在您比较char
时(至少看起来如此),请确保它们位于''
if(choice=='s'||choice=='S'){
答案 2 :(得分:0)
首先,通过在开头添加以下语句来声明choice
int choice;
然后,改变
if(choice==s||choice==S){
到
if(choice == 's' || choice == 'S'){
这是因为s
和S
是标识符,可以是变量或函数的名称,而's'
和'S'
是字符常量,代表int
s,其值为包含字符的ascii值。例如,s
与115相同,S
与83相同。您应该使用字符常量,因为字符在C中存储为整数值。
BTW,scanf(" %c", &choice);
似乎更好,因为它可以丢弃所有烦人的空白字符(如果有的话),如'\n'
。在这种情况下使用scanf("%c", &choice);
不会导致问题,但如果您想多次输入s
,最好添加前导空格。