查询确定网络提供商

时间:2016-02-13 12:20:59

标签: c dev-c++

我应该创建一个查询来确定一个11位手机号码的网络。

  • 如果手机号码以09160917开头,则显示Network G
  • 如果以09180920开头,则显示Network S
  • 如果以09220923开头,则显示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();

}

1 个答案:

答案 0 :(得分:1)

您的测试正在使用或(||)而不是和(&&)。考虑一下:所有测试的数字都将大于9160000000或小于9179999999

    if (MobNum>= 9160000000 || MobNum<= 9179999999)
    printf("Network G");

应该是

    if (MobNum>= 9160000000 && MobNum<= 9179999999)
    printf("Network G");

,同样地,对于其他if s