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ď č. 1pretož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:
- List <Integer> hodnotyListList = nový ArrayList <Integer> ();
- pre (int index = 0; index <25; ++ index)
- Integer currentValue = Math.sqrt (index);
- valuesList.add (currentValue);
- pre (int index = 25; index <50; ++ index)
- Integer currentValue = index * 3;
- valuesList.add (currentValue)
- int count = 1;
- pre (celočíselný prúd: hodnotyZoznam)
- ak ((počet% 5) == 0) // napíš nový riadok.
- System.out.print (prúd);
- ++ Počet