/ / Sqrt a Math in Arrays - java

Sqrt a Math in Arrays - java

Mám problém porozumieť tomu, ako písaťtoto pole. Potrebujem to na vytlačenie 10x5 (celkom 50 prvkov) a prvých 25 prvkov sa rovná sqrt indexu, v ktorom sa nachádza, a posledných 25 sa rovná 3 * indexu. Áno, ide o domácu úlohu, ale nežiadam vás, aby ste to pre mňa urobili. Potrebujem iba pomoc! Math hovorím, že nemôžem používať dvojité a dvojité pole dohromady. Tu je to, čo mám zatiaľ:

public class snhu4 {
public static void main(String args[]) {
double alpha[][] = new double[10][5];
double[] sum, sum2;

for (int count=0; count<=25;count++) {
alpha[count]= Math.sqrt(count);
}

for (int count=26; count<=50;count++) {
alpha[count]= count *3;
}

for (int count=0; count<=50;count++) {
System.out.print(alpha[count]);
}
}
}

odpovede:

1 pre odpoveď č. 1

pretože alpha je viacrozmerné pole, na jeho prvky sa nemôžete odvolávať ako na bežné pole.

int myarray[][] = new int[2][2];

Vo vyššie uvedenom príklade je to pole myarray je viacrozmerný. Keby som chcel získať prístup k druhému prvku v prvom poli, mal by som k nemu prístup takto:

int myint = myarray[0][1];

Pokúšate sa získať prístup k viacrozmernému poľu pomocou prístupu pre normálne pole. zmena

alpha[count]

na

alpha[0][count]

alebo podobne.

prečítať tu pre viac informácií o viacrozmerných poliach.


0 pre odpoveď č. 2

definovali ste alfa ako 2D pole s povedzme 10 položiek v prvej dimenzii a 5 v druhej a 5 x 10 je 50 prvkov.

Ak na priradenie hodnôt k týmto prvkom použijete svoje pole, musíte u vyvolať pole pomocou 2 indexov, jedného pre každú dimenziu:

alpha[i][j] = /*double value*/; //with 0<=i<=9 and 0<=j<=4

Prvých 25 prvkov smerujúcich zľava doprava bude teda:
[0] a [0] 9 [1] a [0] 4 [2]
ďalších 25 bude
[4to9] [2] a [0to9] [3] a [0to9] [4]

odvtedy vám nemôžem dať odpovede na vaše domáce úlohy, ale slučky by mali vyzerať takto:

int j;
for(int i = 0; i<25; i++)
{
j=i/10; //integer division will return 0 for i<10, 1 for 10<i<20, etc..
alpha[i%10][j] = Math.sqrt(i);
}

a môžete prísť na zvyšok


0 pre odpoveď č. 3

Zdá sa, že 10x5 je obmedzením výstupu, nie obmedzením dizajnu.

Používate Javu, takže používajte konštrukty Java, nie konštrukty v jazyku C; konkrétne ukladať hodnoty do zoznamu, nie do poľa.

Tu je niekoľko rád:

  1. List <Integer> hodnotyListList = nový ArrayList <Integer> ();
  2. pre (int index = 0; index <25; ++ index)
  3. Integer currentValue = Math.sqrt (index);
  4. valuesList.add (currentValue);
  5. pre (int index = 25; index <50; ++ index)
  6. Integer currentValue = index * 3;
  7. valuesList.add (currentValue)
  8. int count = 1;
  9. pre (celočíselný prúd: hodnotyZoznam)
  10. ak ((počet% 5) == 0) // napíš nový riadok.
  11. System.out.print (prúd);
  12. ++ Počet