C 接收用户输入,搜索其范围值在数组中的位置,并返回2d数组的行索引

C 接收用户输入,搜索其范围值在数组中的位置,并返回2d数组的行索引,c,for-loop,multidimensional-array,C,For Loop,Multidimensional Array,这是我的2d阵列,列出了可用速度。这个密码我必须遵守。如果我的用户输入75349作为他们的时钟速度输入,我将如何识别该速度并返回行索引的值?。。。这是第2行int2d数组,因为它位于7500-14900之间 int UserClockSpeedInput const uint32 SpeedTable[5][2] { {15000, 99990}, //between 15k - 99.99k {7500, 14900}, //between 7.5k - 14.9k {3500,7400},

这是我的2d阵列,列出了可用速度。这个密码我必须遵守。如果我的用户输入
75349
作为他们的时钟速度输入,我将如何识别该速度并返回行索引的值?。。。这是第2行
int
2d数组,因为它位于7500-14900之间

int UserClockSpeedInput

const uint32 SpeedTable[5][2] {
{15000, 99990}, //between 15k - 99.99k
{7500, 14900}, //between 7.5k - 14.9k
{3500,7400},
{1900,3400},
{6000,1800}
}
我想返回用户输入的任何值的行索引, 这些是我已经设置好的设置值。不允许他们输入任何其他值

for(i=0;i<5;i++)
{
    for(j=0;j<2;j++)
    { 

 //not sure of what to do from here.

for(i=0;i您希望对照数组中提供的上限和下限检查输入。您应该检查输入是否大于第一个元素,而小于第二个元素

#include <stdio.h>

void main(){
    const int SpeedTable[5][2] = {
        {15000, 99990}, //between 15k - 99.99k
        {7500, 14900}, //between 7.5k - 14.9k
        {3500,7400},
        {1900,3400},
        {6000,1800}
    };

    int user_input = 7534;

    int i;

    for (i = 0; i < sizeof(SpeedTable)/ (2 * sizeof(int)); i++){
        if (SpeedTable[i][0] < user_input && SpeedTable[i][1] > user_input){
            break;
        }
    }

    printf("%d\n", i);
}
#包括
void main(){
const int SpeedTable[5][2]={
{15000,99990},//在15k-99.99k之间
{7500,14900},//在7.5k-14.9k之间
{3500,7400},
{1900,3400},
{6000,1800}
};
int user_input=7534;
int i;
对于(i=0;iuser\u input){
打破
}
}
printf(“%d\n”,i);
}
我将如何识别该速度并返回行索引的值

解决方案:

您只需使用以下
for
循环即可实现

    int number; //variable to hold user's input

    //scanning user's input
    printf("enter any number : ");
    scanf("%d",&number); 

    //for loop to determine position
    for (int index = 0; index < 5; index++)
    {
        if( (number >= SpeedTable[i][0]) && (number <= SpeedTable[i][1]) )
        {
            break;
        }
    }

    //printing index
    printf("return index value : %d ",i);

欢迎访问堆栈溢出!请先将您的研究成果显示出来。请阅读第一页。<代码>主< /代码>有无效的签名。使用<代码> int main(空隙)<代码>代替<代码> SIEZOF(Suffice)…<代码>是一个好主意。请考虑<速码表/代码表> [代码0 ] < /代码> HMM.我期待<代码>速度表[i](0)为什么从OP的
uint32
更改为
int
#include <stdio.h>

int main(void){

    const unit32 SpeedTable[5][2] = {
        {15000, 99990}, //between 15k - 99.99k
        {7500, 14900}, //between 7.5k - 14.9k
        {3500,7400},
        {1900,3400},
        {600,1800} //between 0.6k - 1.8k
    };

    int number;

    printf("enter any number : ");
    scanf("%d",&number);

    int i;

    for (i = 0; i < 5; i++)
    {
        if( (number >= SpeedTable[i][0]) && (number <= SpeedTable[i][1]) )
        {
            break;
        }
    }

    printf("return index value : %d ",i);

}