Можно ли как-нибудь собрать все значения x...x7 и y...y7 в массив?

Не доходит как можно это нормально реализовать так, чтобы не ломать все остальное

#include <stdio.h>
#include <stdlib.h>
#include <conio.h>
int main()


{
char mas [9] [12];

int i;
int xo, yo;
 srand(time(NULL));
  int x=rand()*1.0/RAND_MAX *8+1, y=rand()*1.0/RAND_MAX *8+1;
   int x1=rand()*1.0/RAND_MAX *8+1, y1=rand()*1.0/RAND_MAX *8+1;
    int x2=rand()*1.0/RAND_MAX *8+1, y2=rand()*1.0/RAND_MAX *8+1;
     int x3=rand()*1.0/RAND_MAX *8+1, y3=rand()*1.0/RAND_MAX *8+1;
      int x4=rand()*1.0/RAND_MAX *8+1, y4=rand()*1.0/RAND_MAX *8+1;
       int x5=rand()*1.0/RAND_MAX *8+1, y5=rand()*1.0/RAND_MAX *8+1;
        int x6=rand()*1.0/RAND_MAX *8+1, y6=rand()*1.0/RAND_MAX *8+1;
         int x7=rand()*1.0/RAND_MAX *8+1, y7=rand()*1.0/RAND_MAX *8+1;
printf(" 12345678\n");
printf(" ________\n");
for(i=1;i<9;i++) 
sprintf(mas[i],"|OOOOOOOO|%d",i); 

  
mas[y][x]='@';
mas[y1][x1]='@';
mas[y2][x2]='@';
mas[y3][x3]='@';
mas[y4][x4]='@';
mas[y5][x5]='@';
mas[y6][x6]='@';
mas[y7][x7]='@';
for (i=1; i<9;i++)
printf("%s\n",mas[i]);

Пробовал через что-то подобное

 srand(time(NULL));     
    const int size = 8;    
    int x[size];  
    int y[size];       
    int i;
 
  
    for (i=0; i<size; i++)
        x[i] = rand()*1.0/RAND_MAX *8+1, Y[i] = rand()*1.0/RAND_MAX *8+1;

Я получал Array subscript is not an integer в присвоение ( mas[y][x]='@' )


Ответы (1 шт):

Автор решения: Harry

Я бы заменил все ваши строки таким:

for(int i = 0; i < 8; ++i)
    mas[rand()%9][rand()%9] = '@';

Т.е. в случайные места с индексами от 0 до 8 ткнуть эту "собачку".

Меня смущает только ваше

rand()*1.0/RAND_MAX *8+1

Оно принимает значения от 1 до 8. Так и надо? тогда

    mas[rand()%8+1][rand()%8+1] = '@';

Только у вас размерность массива 9х12, а заполняется квадрат 8х8. Не смею спорить, но нет ли здесь какого недосмотра?

И еще... Это все же случайные величины, так что может оказаться так, что "собачка" может быть записана в одну и ту же клетку неоднократно. С этим надо бороться или нет?

→ Ссылка