Математика


 Правила(обновени на 11.05.2008)   Търсене   Потребители   Потребителски групи   Регистрирайте сеРегистрирайте се 
 ПрофилПрофил   Влезте, за да видите съобщенията сиВлезте, за да видите съобщенията си   ВходВход 


Не е нужно да се регистрирате!

Двумерен масив


 
Създайте нова тема   Напишете отговор    Информатика Форуми -> Java
Предишната тема :: Следващата тема  
Автор Съобщение
Apocalyp5e



Регистриран на: 29 Mar 2008
Мнения: 21


МнениеПуснато на: Thu Nov 13, 2008 5:40 pm    Заглавие: Двумерен масив Отговорете с цитат

Даден ни е двумерен масив:

a00 a01 a03 ... a0n
a10 a11 a13 ... a1n
a20 a21 a23 ... a2n
a30 a31 a33 ... a3n
.
.
.
am0 am1 am3 ... amn.

Да се изведат елементите на масива диагонално, т.е. a00, a10a01, a20a11a03 и т.н. до аmn.

Код:
public static void readDiagonally(int[][]a)
{

for(int i=0;i<=a[0].length;i++)
{
int j=-1;
int ii=i;
int jj=j;
   do{for(ii=i; ii>=0&&jj<=a.length;i--,j++)
         System.out.print(a[ii][jj+1]+" ");
   }
   while (j<=a.length&&i<=a[0].length);
   System.out.println(" ");
   return;
}
}


Написах това, но то не работи (а и май не е особено смислено) ;( Може ли малко помощ?
Върнете се в началото
Вижте профила на потребителя Изпратете лично съобщение
Реклама







Пуснато на:     Заглавие:

Върнете се в началото
admin
Site Admin


Регистриран на: 12 Oct 2005
Мнения: 279
Местожителство: София(Варна)

МнениеПуснато на: Thu Nov 13, 2008 8:08 pm    Заглавие: Отговорете с цитат

Я го махни return;
за да не излиза от метода може това да е проблема
Върнете се в началото
Вижте профила на потребителя Изпратете лично съобщение Посетете сайта на потребителя Yahoo Messenger ICQ Номер
RGT



Регистриран на: 13 Apr 2008
Мнения: 132
Местожителство: Плевен

МнениеПуснато на: Thu Nov 13, 2008 10:40 pm    Заглавие: Отговорете с цитат

А моа ли да попитам къде, по дяволите, променяш ii и jj... ?

Опа, ясно как става така, че променяш ii. Обаче все пак смятам, че никъде не променяш jj...
Иначе общо взето тва е замисъла, ама реализацията е доста грозна. Като за начало махни тоя do while, щото няма никъв смисъл от него - може да се оправиш и само с един for... И ако в тоя for променяш ii и jj вместо i и j, може би даже ще вземе да проработи нормално.
Върнете се в началото
Вижте профила на потребителя Изпратете лично съобщение Посетете сайта на потребителя
nikolavp



Регистриран на: 09 Jul 2008
Мнения: 129


МнениеПуснато на: Sat Nov 15, 2008 7:46 pm    Заглавие: Отговорете с цитат

admin написа:
Я го махни return;
за да не излиза от метода може това да е проблема
Не е проблема в return-a, защото компилатора го добавя винаги ако се връща void Smile

Това ти е матрица като тя е от вида Amxn => имаш нещо такова за принтиране на големия диагонал
Код:

for(int i = 0;i < m;i++){
    for(int x = 0;x < n;x++){
       if(x == i){
           System.out.println(a[i][x]);
       }
    }
}


Последната промяна е направена от nikolavp на Sun Nov 16, 2008 12:16 am; мнението е било променяно общо 1 път
Върнете се в началото
Вижте профила на потребителя Изпратете лично съобщение
admin
Site Admin


Регистриран на: 12 Oct 2005
Мнения: 279
Местожителство: София(Варна)

МнениеПуснато на: Sat Nov 15, 2008 9:54 pm    Заглавие: Отговорете с цитат

Сложи return преди последната скоба не в цикъла
Върнете се в началото
Вижте профила на потребителя Изпратете лично съобщение Посетете сайта на потребителя Yahoo Messenger ICQ Номер
Apocalyp5e



Регистриран на: 29 Mar 2008
Мнения: 21


МнениеПуснато на: Mon Nov 17, 2008 9:11 pm    Заглавие: Отговорете с цитат

Благодаря Smile Оправих го (party)

Код:


public static void readDiagonally(int[][] a)
{
   int n = a.length;
   int m = a[0].length;

   int i=0, j=0;

   do {
      if (i<n && j<m) System.out.println(a[i][j]);
      if (i==0) { i=j+1; j=0; }
      else { i--; j++; }
   } while (i!=n || j!=m);
   
}
Върнете се в началото
Вижте профила на потребителя Изпратете лично съобщение
Покажи мнения от преди:   
Създайте нова тема   Напишете отговор    Информатика Форуми -> Java Часовете са според зоната GMT + 2 Часа
Страница 1 от 1

 
Идете на:  
Можете да пускате нови теми
Можете да отговаряте на темите
Не Можете да променяте съобщенията си
Не Можете да изтривате съобщенията си
Не Можете да гласувате в анкети
You cannot attach files in this forum
Може да сваляте файлове от този форум
Copyright © 2007-2013 math10.com.   изработка на сайт