这是我列出的可用速度的二维阵列。这个代码我必须保留。如果我的用户输入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.
答案 0 :(得分:0)
我将如何识别该速度并返回行索引的值
解决方案:
您可以使用以下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);
建议:
首先,
{6000,1800}
,{600,1800}
和
所以你的代码总是:
#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);
}
答案 1 :(得分:-1)
您希望根据数组中提供的上限和下限检查输入。您应该检查输入是否大于第1个元素,并且小于第2个元素。
#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);
}