我应该创建一个查询来确定一个11位手机号码的网络。
0916
或0917
开头,则显示Network G
。0918
或0920
开头,则显示Network S
。0922
或0923
开头,则显示Network A
。但它始终打印Network G
。请帮帮我!
#include<stdio.h>
#include<conio.h>
int main()
{
int MobNum;
printf("Enter11 digit mobile number: ");
scanf("%i", &MobNum);
if (MobNum>= 9160000000 || MobNum<= 9179999999)
printf("Network G");
else
if (MobNum>= 9180000000 || MobNum<= 9209999999)
printf("Network S");
else
if (MobNum>= 9220000000 || MobNum<= 9239999999)
printf("Network A");
else
printf("Invalid provider");
getch();
}
答案 0 :(得分:1)
您的测试正在使用或(||
)而不是和(&&
)。考虑一下:所有测试的数字都将大于9160000000
或小于9179999999
。
if (MobNum>= 9160000000 || MobNum<= 9179999999)
printf("Network G");
应该是
if (MobNum>= 9160000000 && MobNum<= 9179999999)
printf("Network G");
,同样地,对于其他if
s