Не е нужно да се регистрирате!
| Предишната тема :: Следващата тема |
| Автор |
Съобщение |
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;
за да не излиза от метода може това да е проблема |
|
| Върнете се в началото |
|
 |
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
Това ти е матрица като тя е от вида 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 преди последната скоба не в цикъла |
|
| Върнете се в началото |
|
 |
Apocalyp5e

Регистриран на: 29 Mar 2008 Мнения: 21
|
Пуснато на: Mon Nov 17, 2008 9:11 pm Заглавие: |
|
|
Благодаря Оправих го (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);
}
|
|
|
| Върнете се в началото |
|
 |
|
|
Можете да пускате нови теми Можете да отговаряте на темите Не Можете да променяте съобщенията си Не Можете да изтривате съобщенията си Не Можете да гласувате в анкети You cannot attach files in this forum Може да сваляте файлове от този форум
|
|