C 如何将输入与数组索引匹配?
对于这个节目,我想从用户那里获得一个电视频道的输入,这将是C 如何将输入与数组索引匹配?,c,C,对于这个节目,我想从用户那里获得一个电视频道的输入,这将是 int tv[] = {2, 4, 5, 6, 8}; 我想提示用户输入他们想要的电视频道,因此电视频道4的scanfindex[1]。如何将扫描的电视频道(4)与一个新变量相匹配,该变量将等于[1]的数组索引?从用户处读取频道号,并在数组中循环查找该频道号所在的位置。执行简单的线性搜索,在数组中按顺序搜索元素(此处为频道号) int channelnumber,arrayindex; printf("\n Enter the cha
int tv[] = {2, 4, 5, 6, 8};
我想提示用户输入他们想要的电视频道,因此电视频道4的scanf
index[1]
。如何将扫描的电视频道(4)与一个新变量相匹配,该变量将等于[1]的数组索引?从用户处读取频道号,并在数组中循环查找该频道号所在的位置。执行简单的线性搜索,在数组中按顺序搜索元素(此处为频道号)
int channelnumber,arrayindex;
printf("\n Enter the channel number");
scanf("%d",&channelnumber)
for(i=0;i<5;i++)
{
if(tv[i]==channelnumber)
{
arrayindex=i;
break;
}
}
int channelnumber,数组索引;
printf(“\n输入频道号”);
scanf(“%d”、&channelnumber)
对于(i=0;i我相信这个问题是一个简单的搜索案例。如果通道不有序,你可能可以进行线性搜索,或者使用二进制搜索逻辑来查找通道。如果你也不想这样做,那么就使用散列概念。但这会增加数组的大小,但有助于你很容易找到元素y
<>希望你回答问题…..(p/>< p>)更容易的方法是使用一些数组来搜索数组。如果你的数组是“强”>“巨大/ <强”,那么你可能会想一个叫做“AS”的C++容器。如果你创建一个映射,那么你就可以在O(1)中提到你所说的关联。(在我看来,如果你有一个大数组)另一个解决方案是,你可以有另一个数组,它可以将你映射到正确的索引
比如说,
int tv[] = {2, 4, 5, 6, 8};
int mapping[]={-1,-1,0,-1,1,2,3,-1,-1,4};
tv[mapping[channelNumber]]//getting the actual value
这将占用额外的空间,但可以提高性能您是在说使用枚举之类的东西吗?似乎您想要使用关联数组。