Итак, у меня есть код, который создает доску 7x7 с динамически распределенными массивами, а внутри платы есть "?" и что я хочу создать новую функцию, и внутри функции я использовал команду rand, чтобы получить такие случайные числа, как это,
int random() {
return ((rand() % 7) + 1);
}
Поэтому у меня возникла проблема с изменением 6 случайных чисел на доске, и мой код ниже,
Ниже я пытался получить случайные числа для массива
printf("Enter number: ");
scanf("%d", &b);
char *rando = (char *)malloc(7 * 7 * sizeof(char));
for (i = 0; i < b; i++) {
rand1 = random();
rand2 = random();
*(rando + rand1 + rand2) = '*';
}
И здесь я напечатал "?" знаков, а также там, где я пытался изменить 6 разных знаков, и он выводит только часть "else", игнорируя "если" по какой-то причине
for (j = 0; j < 7; j++) {
if (*(board + i + j) == *(rando + i + j))
printf("| %c ", *(rando + i + j));
else
printf("| %c ", *(board + i + j));
}
И весь мой код такой, он довольно длинный, но большинство из них предназначены для красивой доски
#include <stdio.h>
#include <stdlib.h>
#include <time.h>
int random() {
return ((rand() % 7) + 1);
}
int main() {
int i, j, k, rand1, rand2, b;
srand(time(NULL));
printf("Enter number: ");
scanf("%d", &b);
char *rando = (char *)malloc(7 * 7 * sizeof(char));
for (i = 0; i < b; i++) {
rand1 = random();
rand2 = random();
*(rando + rand1 + rand2) = '*';
}
char *board = (char *)malloc(7 * 7 * sizeof(char));
for (i = 0; i < 7; i++) {
for (j = 0; j < 7; j++) {
*(board + i + j) = '?';
}
}
for (i = 1; i <= 7; i++) {
printf("%4d", i);
}
printf("\n ");
for (i = 0; i < 7; i++) {
printf("+---");
}
printf("+\n");
for (i = 0; i < 7; i++) {
printf("%d ",i);
for (j = 0; j < 7; j++) {
if (*(board + i + j) == *(rando + i + j))
printf("| %c ", *(rando + i + j));
else
printf("| %c ", *(board + i + j));
}
printf("|\n");
for (k = 0; k <= 7; k++)
if (k == 0)
printf(" ");
else
printf("+---");
printf("+\n");
}
}
Я указал на важные части, в которых я застрял, но все еще не уверен, есть ли проблема в других частях моего кода, поэтому я показал это здесь, на всякий случай.