#include <stdio.h>
int main(void)
{
int a[10], i, n, max, *p;
printf("Enter n:");
scanf("%d", &n);
for(i = 0; i < n; i++) {
scanf("%d", &a[i]);
}
*p = a; /* 指针p指向数组首元素 */
max = a[0];
while(p < a+n) { /* 调试时设置断点 */
if(*p > max) {
max = p;
}
p = p + sizeof(int);
}
printf("max = %d\n", max);
return 0;
}
三处错误,见注释,供参考:
#include <stdio.h>
int main(void)
{
int a[10], i, n, max, * p;
printf("Enter n:");
scanf("%d", &n);
for (i = 0; i < n; i++) {
scanf("%d", &a[i]);
}
p = a; //*p = a; 修改
max = a[0];
while (p < a + n) { /* 调试时设置断点 */
if (*p > max) {
max = *p; //max = p; 修改
}
p = p + 1; //p = p + sizeof(int); 修改
}
printf("max = %d\n", max);
return 0;
}
p = p + sizeof(int);
改为 p++;
代码展示📜:
void SetMine(char Board[ROWS][COLS], int row, int col)
{
int count = NumMine;
while (count)
{
int x = rand() % row + 1;
int y = rand() % col + 1;
if (Board[x][y] == '0')
{
Board[x][y] = '1';//雷为'1'
count--;
}
}
}
说明:
NumMine是整个方阵中雷的个数,这里通过while循环来实现雷的一个一个布置。此时需要让电脑随机生成横纵坐标,运用到了rand函数随机生成1到9(雷布置的区域)的数,该函数的头文件为#include <stdlib.h>,使用该函数还需要使用srand函数进行配合
srand((unsigned int)time(NULL));
这是拿时间戳来设置随机数的生成起始点,里面包含time函数,其头文件为#include <time.h>,在调用rand函数之前调用一次即可,所以将其放置在了 main函数的循环外即可。
如果生成的坐标先前没有布置过雷(坐标里是’0’),就布置一个雷,雷用’1’表示,每不止一个count- -,直到count等于0,跳出循环,结束布置雷这一个操作。
很抱歉,作为AI语言模型,我无法查看你的代码,更无法对其进行评估和提出改进建议。请将你的代码复制粘贴到答案中,我会尽可能为你提供帮助。