簡體   English   中英

如何獲得一個數字在矩陣中的位置?

[英]how to get the position of a number in matrix?

如何通過 c 或 Javascript 獲取數字的位置。 它是一個有序的數字數組,比如

1 2
3 4
5 6

我怎樣才能制作一個函數來獲得數字 3 是 2-1,而 6 是 3-2

非常感謝!

你可以在javascript中做這樣的事情

 var data = [ [1, 2], [3, 4], [5, 6] ]; var getPos = function(elem, data) { var result = ''; data.forEach(function(value, index) { value.forEach(function(v, i) { if (v == elem) result += (index + 1) + '-' + (i + 1); }); }); return result; } console.log(getPos(5, data));

在 C 中,您可以編寫一個函數來實現以下偽代碼:

//...
for(i=0 ; i<ARRAY_SIZE ; i++)
    {
    if(array[i] == desired_num) 
    return i;
    else
    i++;
    } 
return -1; // return error if desired_num not found
//...

如果它是一個連續有序的二維數組,你可以做這樣的事情來獲取索引。 (根據您的示例注意+1

int x = floor(number/2) +1:
int y = (number+1)%2 +1;

如果您使用的是數組,您應該能夠跳轉到正確的索引,而無需像我看到的其他答案所建議的那樣循環。

array[x][y]

你可以做這樣的事情

 var table = (new Array (10)).fill(new Array(10).fill("")).map( e=> e.map( f => ~~(Math.random()*1000))), results = []; function findInTable(t, q){ var finds = {x:[],y:[]}; t.forEach( (a, i) => {j = a.indexOf(q); ~j && (finds.x.push(j+1), finds.y.push(i+1))}); return finds; } results = findInTable(table, 777); document.write("<pre>" + table[0] + "\\n" + table[1] + "\\n" + table[2] + "\\n" + table[3] + "\\n" + table[4] + "\\n" + table[5] + "\\n" + table[6] + "\\n" + table[7] + "\\n" + table[8] + "\\n" + table[9] + "\\n" +"</pre>"); document.write("<pre> Searched for " + 777+ " and found at:\\n" + JSON.stringify(results, null, 4) + "</pre>");

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM