Javascript-форум (https://javascript.ru/forum/)
-   Общие вопросы Javascript (https://javascript.ru/forum/misc/)
-   -   Диагонали в массиве (https://javascript.ru/forum/misc/32836-diagonali-v-massive.html)

boy_cow 31.10.2012 20:19

Диагонали в массиве
 
Привет всем.
Суть задачи: есть масссив 10*10, необходимо заполонить чётные диагонали с левого верхнего угла единицами.У меня получилось заполнить массив наполовину, дальше не знаю как, есть идея использовать 3 цикла:
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN" "http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>Диагонали</title>

<script type="text/javascript">

var arr=new Array(10);


function d(){
	
	for(var i=0;i<arr.length;i++) {
		
		arr[i]=new Array();
			
		for(var j=0;j<arr.length;j++) {
			
			arr[i][j]=0;
				
		}
			
	}
	
	
	for(var i=1;i<arr.length;i++) {
		
			
		for(var j=0;j<arr.length;j++) {
			
			if(arr[j][(arr.length-i)-j]==0)	arr[j][(arr.length-i)-j]=1;
				
		}
		i++;			
	}
	
	document.getElementById("res").innerHTML=arr.join("<br/>");
}



</script>
</head>

<body onload="d()">
<div id="res">
</div>
</body>

dmitriymar 31.10.2012 20:25

Цитата:

Сообщение от boy_cow
Суть задачи: есть масссив 10*10,

так в условии сказано? если да -нах это. в js нет двумерных массивов,есть вложенные
чего там сложного? в нечётном заполнение 1 с 0 элемента, в чётном с 1. в цикле для вложенного приращение 2
for(var i=0;i<arr.length;i++) {             
        for(var j =i%2; ;j<arr[i].length;j=j+2) {             
            arr[i][j]=1;
        }      
}

boy_cow 31.10.2012 20:31

Нету, но вложенный массив подобный двумерному.

dmitriymar 31.10.2012 20:35

boy_cow,
я тебе ответ выше написал
и пересмотри свой код весь...

lord2kim 31.10.2012 20:37

boy_cow,
var mas = [];
for (i = 0; i <= 10; i++) {
    mas[i] = [];
    for (j = 0; j <= 10; j++) {
        mas[i][j] = (i == j ? 1 : 0) + (j == 10 ? "\n" : "");
    }
}
alert(mas);

lord2kim 31.10.2012 20:45

dmitriymar, мб...но я так хорошо математику не умею использовать...

a_l 31.10.2012 20:47

var arr = [];
for(var i=0; i < 10; i++) {
    arr[i] = new Array(10);
    for(var j=0; j < 10; j++){
        arr[i][j] = (i===j && i%2!==0) ? 1 : 0;
    }
}

dmitriymar 31.10.2012 20:53

lord2kim,
не обижайся, ты просто неправильно условие прочитал-там все чётные диагонали нужно заполнить 1
а вот про заполнение нулями там ни слова :)

a_l 31.10.2012 20:56

Цитата:

Сообщение от dmitriymar (Сообщение 213332)
lord2kim,
не обижайся, ты просто неправильно условие прочитал-там все чётные диагонали нужно заполнить 1
а вот про заполнение нулями там ни слова :)

ТС в своём коде заполняет;)

dmitriymar 31.10.2012 20:58

a_l,
ты свой код протесть


Часовой пояс GMT +3, время: 00:58.