c - 在 C 中替换数组的元素

标签 c arrays

我正在为一项任务开发战舰项目。我在寻找放置船只的好方法时遇到了麻烦。我一直在尝试的想法是用零填充 10x10 数组,然后用 c 表示航母、d 表示驱逐舰等替换特定坐标。但我还没有太成功。如果有人对我如何做到这一点有任何想法,或者如果您知道更好的方法,那么任何帮助或指导将不胜感激。

抱歉,这是我第一次在网上提供帮助。并回答问题。不,我不知道如何处理数组,这是我寻求帮助的部分原因。我一直在阅读我的教科书,但我没有发现任何类似的内容,并且在没有具体理解的情况下,很难思考超出书本内容的内容。但这是我到目前为止仅用于创建策略板和游戏板以及我放置船只的尝试的代码

   //================================FillArray==========================================
void FillArray(int pboard[], int sboard[]);
{

    //Statement
    for(int y; y < col; y++);
    {
        printf("%d", y);//prints y axis boarder
        for(int x=0; x < row; x++);
        {
        printf("%d", x);//prints x axis boarder
        for(int y=0; y < col; y++);
            pboard[row][col] = 0;
        }//for
    }//Fills array for play


    for(int y; y < col; y++);
    {
        printf("%d", y);//prints y axis boarder
        for(int x=0; x < row; x++)
        {
        printf("%d", x);//prints x axis boarder
        for(int y=0; y < col; y++);
            sboard[row][col] = 0;
        }//for
    }//Fills array for Ships

    return;
}//FillArray


//================================PlaceShips==========================================

void PlaceShips(int air=5, int bat=4, int cru=3, int des=1, int sub=2);
{

    char ship;
    int x,y;
    int k;

    //Statement

    printf("Enter first letter of ship name: ");
    if(scanf("%c", ship) == a)
        { printf("You have 5 space, Please enter furthest left or futhest up coordinate: ");
            scanf("%d%d", &x,&y);
            while(x>10 && y > 10)
                {
                    printf("Enter 1. to place ship vertically\nEnter 2. to place ship horizontally: ")
                    scanf("%d", &k)
                    for(k==1, y > 6, y++);
                    {   pboard[row][y-1] = a;
                            if(y<0 || y >9)
                        printf("error");
                    }
                    for(k==2, x > 6, x++);
                    {
                        pboard[x-1][col] = a; 
                        if(x < 0 || x > 9)
                        printf("error");
                    }
                }
        }
}

这是一个好方法吗?或者是否有更有效的方法。我尝试了类似的结构:

typedef struct
{
char id[5]={a,a,a,a,a}
char name[]=aircraft
int hits=5
} Aircraft Carrier

但我不确定他们会如何提供帮助。

最佳答案

 for(&k==1, y > 6, y++)

我想这是您遇到的问题之一。

首先,您需要使用 ; 分隔 for() 语句。

其次,您将访问 k 的地址,并检查是否相等。 for 语句的第一部分通常设置一个变量。你需要重新思考你的逻辑。

        while(x>10 && y >> 10)

>>> 不一样,要小心。

关于c - 在 C 中替换数组的元素,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13888490/

相关文章:

c++ - 为什么我不能将新对象添加到我的对象指针数组中?

c++ - 任何在 64 位机器上使用 8 个字节作为 int 数据类型大小的 C/C++ 编译器

c - 数组随机排序

c - 持续的虚拟内存增加是否表明内存泄漏?

c - cc1为什么叫cc1呢?

c++ - valgrind:内存泄漏(不匹配的 free()/delete/delete[] )

c++ - 什么时候使用 printf/scanf vs cout/cin?

Java 8,将文件名数组转换为文件数组

java - int[]数组和BitSet的交集可以更快吗?

php - 获取通知系统数组中的名称