请教 有一个二维数组。怎样存储 才可以根据输入的数值取得对应的第二列数据呢

来源:互联网  时间:2016/7/16 13:12:49

关于网友提出的“ 请教 有一个二维数组。怎样存储 才可以根据输入的数值取得对应的第二列数据呢”问题疑问,本网通过在网上对“ 请教 有一个二维数组。怎样存储 才可以根据输入的数值取得对应的第二列数据呢”有关的相关答案进行了整理,供用户进行参考,详细问题解答如下:

问题: 请教 有一个二维数组。怎样存储 才可以根据输入的数值取得对应的第二列数据呢
描述:


301    abc
201    cba 
3      aaa 
60     ddd
要输:输入 3,能找到 aaa; 
谢了。。。


解决方案1:

用struct来保存数据多好呀,干嘛用二维数组……
丢一个struct的代码。


#include 
#include 
enum {MAX_ITEM = 16};
struct NODE
{
int id;
char item[MAX_ITEM];
};
/* 比较函数 */
int cmp_node(const struct NODE *node1, const struct NODE *node2)
{
if (node1->id < node2->id)
return -1;
else if (node1->id == node2->id)
return 0;
else
return 1;
}
int main(int argc, char **argv)
{
enum {DICT_SIZE = 5};
struct NODE dict[DICT_SIZE] = 
{
{4, "xBurst"},
{123, "abc"},
{6, "asfg"},
{98, "defg"},
{3, "Shiki"},
};
struct NODE key = {0};
struct NODE *val = NULL;
/* 快速排序 */
qsort(dict, DICT_SIZE, sizeof(struct NODE), (int (*)(const void *, const void *))cmp_node);
/* 二分查找 */
while (1)
{
scanf("%d", &(key.id));
val = bsearch(&key, dict, DICT_SIZE, sizeof(struct NODE), (int (*)(const void *, const void *))cmp_node);
if (NULL != val)
{
printf(
"Found!\n"
"Key: %d, Value: %s\n", val->id, val->item
);
}
else
printf("Not Found!\n");
}
return 0;
}
解决方案2:

map maplive;
maplive.insert(pair(xx,"xxxx"));
map::iterator it;
it=maplive.find(3);
返回 it->second;

上一篇求一个汇编helloworld
下一篇c语言的问题
明星图片
相关文章
《 请教 有一个二维数组。怎样存储 才可以根据输入的数值取得对应的第二列数据呢》由码蚁之家搜集整理于网络,
联系邮箱:mxgf168#qq.com(#改为@)