/ / Spośród pozostałych liczb chciałem wybrać kilka liczb, ale na podstawie pewnej zmiennej licznika, której wartość jest losowo określona - ios, obiektyw-c, tablice

Spośród pozostałych liczb chciałem wybrać kilka liczb, ale na podstawie pewnej zmiennej licznika, której wartość jest losowo określona - ios, obiektyw-c, tablice

Mam tablicę zawierającą liczby od 1 do 7. Teraz wybieram konkretne liczby i umieszczam je w innej podwarstwie. Jeśli nie zawiera tych konkretnych liczb, chciałem wybrać kilka liczb, ale w oparciu o pewną zmienną licznika, której wartość jest losowo określana. Na przykład, jeśli wartość licznika wynosi 2, tylko dwie liczby z pozostałych elementów tablicy muszą zostać wybrane. To może być proste pytanie, ale potrzebuję pomocy, ponieważ jestem początkującym ios i celem c

z góry dziękuję co próbowałem

int counter = (arc4random()%(4-1))+1

for(int i=0; i<[mainarray count];i++)
{
if([[[mainarray objectAtIndex:i] objectAtIndex:1] integerValue]==specificnum)
{
[subarray addObject:[mainarray objectAtIndex:i]];
}
else if(counter==1)
{
[subarray addObject:[mainarray objectAtIndex:i]];
}
}

właściwie utknąłem w innej części

Odpowiedzi:

1 dla odpowiedzi № 1

Pokazuję tutaj tablice z przykładowymi wartościami. Spróbuj tego

int counter = (arc4random()%(4-1))+1;
int specificnum = 4;
NSLog(@"Counter:%i ",counter);

NSArray *mainarray = [NSArray arrayWithObjects:@"1",@"2",@"3",@"4",@"5",@"6",@"7", nil];
NSMutableArray *subarray = [[NSMutableArray alloc]init];

for(int i=0; i<[mainarray count];i++)
{
if([[mainarray objectAtIndex:i]  integerValue]==specificnum)
{
[subarray addObject:[mainarray objectAtIndex:i]];
}
else if(counter!=0)
{
[subarray addObject:[mainarray objectAtIndex:i]];
counter--;
}
}
NSLog(@"Array: %@",subarray );

0 dla odpowiedzi nr 2
int[] mainarray;
int[] subarray;

// przypuśćmy, że przeniosłeś niektóre elementy tablicy z mainarray do subarray.

// znajdź bieżącą długość tablicy głównej tablicy

int main_length=mainarray.length();
int subarray_length=subarray.length();
Random rand = new Random();

int counter== rand.nextInt(main_length) + 1;

for(int i=0;i<counter;i++)
{
subarray[subarray_length]=mainarray[counter];
subarray_length++
}