2017-01-07 3 views
-4

Как бы я мог заменить случайные числа в массиве с помощью X, поскольку я хочу, чтобы случайно не отображать некоторые числа при печати массива.Случайно заменяйте числа в массиве

так, например, у меня есть массив кодируется следующим образом:

void main() 
{ 

    int Array[3][3]; 
    int row, col; 

    for (row = 0; row<3; row++) 
    { 
     for (col = 0; col<3; col++) 
     { 
      if (col == 0) 
      { 
       Array[row][col] = (rand() % 10); 

      }//end of 1st col 

      else if (col == 1) 
      { 
       Array[row][col] = (rand() % 10); 

      }//end of 2nd col 

      else if (col == 2) 
      { 
       Array[row][col] = (rand() % 10); 

      }//end of 3rd col 

     }// end col for 

     printf("\n"); 

    }// end row for 

    //print 
    for (row = 0; row < 3; row++) 
    { 
     for (col = 0; col < 3; col++) 
     { 
      printf("%d \t", Array[row][col]); 

     }// end col for 

     printf("\n"); 

    }// end row for ptinting the array 
    _getch(); 
} 

пример вывода из этого является:

Я хочу случайным образом заменить номера внутри этого массива на X следующим образом:

1 х 4

х 9 4

8 8 х

Благодаря.

+2

X не является числом. Задайте значение для некоторого известного значения вне диапазона, например -1. Затем проверьте это и распечатайте X. – OldProgrammer

+0

Число может быть равным нулю, так как в конечном коде диапазон будет находиться между 1 и 90. Как я произвольно выбираю числа внутри массива, чтобы изменить их на указанное значение (ноль)? – ICM89

+0

Недостаточно сказать «случайно». Вам также нужно решить, по крайней мере, случайным образом, с каким ожиданием? 20% элементов? 50%? 90%? Как только вы это решите, у вас будет * много ответов ниже, и хорошие, поверьте мне. –

ответ

0

Первый в первом коде не нуждается в условии «если», это создаст большую задержку в срочном порядке наряду с тем фактом, что нет необходимости в состоянии.

Теперь, если у вас есть случайный x juste, создайте цикл, который выберете элемент row, и для каждого incrémentation вы вызываете случайную функцию внутри этого цикла, а возвращаемое случайное значение должно быть значением между 0 и 2, поэтому создайте while, возвращаемое значение и условие, чтобы выйти за пределы while, является то, что возвращаемое значение находится между 0 и 2, когда это значение будет вашим индексом col, где вы собираетесь разместить x

+0

Да, извините, что «если» есть, потому что в конечном коде столбцы должны иметь диапазоны. Итак, 1 столбец находится между 1 - 10, 2 - между 11 - 20 и так далее. – ICM89

0

Не уверен, что это то, что вы ищете для

#include <stdio.h> 
#include <time.h> 

void main() { 
    int Array[3][3]; 
    int row,col; 

    srand(time(NULL)); 

    for(row=0;row<3;row++) 
     for(col=0;col<3;col++) 
      Array[row][col] = rand() % 10; 

    for(row=0;row<3;row++) { 
     for(col=0;col<3;col++) 
      if(rand() % 2) 
       printf("%d ", Array[row][col]); 
      else 
       printf("X "); 
     printf("\n"); 
    }   
} 
+0

Вы указали, что выглядит как полная программа, но вы забыли установить значения в 'Array'. Кроме того, я получаю идею, что OP не хочет * переписывать * их, а просто «не показывать». .. Возможно, вы можете сделать их отрицательными, чтобы указать это? (Просто мысль.) Также, пожалуйста, потеряйте 'getch' в конце. (* Не * простая мысль.) – usr2564301

+0

Вы можете переписать их или просто не показывать их в любом случае. Я просто думал, что не показывать их было бы легче сделать. Вам нужно _getch(); чтобы открыть окно, не так ли? В противном случае программа просто запускается и закрывается? – ICM89

+0

Да, вы правы. Не показывать их проще. Я не вижу разницы между _getch() и getch(), но вы можете редактировать его, конечно. Я редактировал код, так что теперь он выглядит лучше. –

0

Так благодаря Ash это то, что я сделал:

void main() 
{ 

    int Array[3][3]; 
    int row, col; 

    srand(time(NULL)); 
    for (row = 0; row<3; row++) 
    { 
     for (col = 0; col<3; col++) 
     { 
      if (col == 0) 
      { 
       Array[row][col] = (rand() % 10); 

      }//end of 1st col 

      else if (col == 1) 
      { 
       Array[row][col] = (rand() % 10); 

      }//end of 2nd col 

      else if (col == 2) 
      { 
       Array[row][col] = (rand() % 10); 

      }//end of 3rd col 

     }// end col for 

     printf("\n"); 

    }// end row for 

    //print 
    for (row = 0; row < 3; row++) 
    { 
     for (col = 0; col < 3; col++) 
     { 


      if (rand() % 9 < 4) 
      { 
       printf("%d \t", Array[row][col]); 
      } 
      else 
      { 
       printf("%s \t", "X"); 
      } 
     }// end col for 

     printf("\n"); 

    }// end row for ptinting the array 
    _getch(); 
} 

Получение распечаток, как:

хх 9

хх 5

3 0 х

Слишком много чисел, кажется, иксы на данный момент, но это может быть ошибка, которую я сделал где-то, что я пока не вижу.

Смежные вопросы