我正在尝试编写一个程序,该程序需要用户输入区号,并基于此表显示该区号所对应的Area:
区号-----------主要城市
229 ---------------------奥尔巴尼
404 ---------------------亚特兰大
470 ---------------------亚特兰大
478 ---------------------梅肯
678 ---------------------亚特兰大
706 ---------------------哥伦布
762 ---------------------哥伦布
770 ---------------------亚特兰大
912 ---------------------萨凡纳
这是我在问题下方的代码,这是我的IF语句给我不正确的结果,例如,如果我输入912,它将给我“ Atlanta”,这是不正确的,因为在IF语句中它指出了912等于用户输入“ Savannah”应显示。
#include <stdio.h>
#include <stdlib.h>
#include <math.h>
#include <stdbool.h>
int main(){
int AreaNum;
printf("enter a area code: ");
scanf("%d", &AreaNum);
if (AreaNum == 229){
printf("Albany");
}else if (AreaNum == 404 || 470 || 678 || 770){
printf("Atlanta");
}else if (AreaNum == 478){
printf("Macon");
}else if (AreaNum == 706 || 762){
printf("Columbus");
}else if (AreaNum == 912){
printf("Savannah");
}else
printf("Area code not recognized");
return 0;
}
AreaNum == 404 || 470 || 678 || 770
不会执行您想要的操作,并且实际上始终会评估为true。您有两种选择。要么将它们全部写长,例如AreaNum == 404 || AreaNum == 470 || AreaNum == 678 || AreaNum == 770
,要么使用switch
语句而不是if
语句,例如:
switch(AreaNum) {
case 229:
printf("Albany");
break;
case 404:
case 470:
case 678:
case 770:
printf("Atlanta");
break;
case 478:
printf("Macon");
break;
case 706:
case 762:
printf("Columbus");
break;
case 912:
printf("Savannah");
break;
default:
printf("Area code not recognized");
}