用C语言实现二维机器的自动运动

用C语言实现二维机器的自动运动,c,linux-device-driver,embedded-linux,C,Linux Device Driver,Embedded Linux,我有一个小项目,这是一台在二维空间运动的机器,一次“行走”一个街区。所以我从编程开始,我想按顺序打印数字,就像机器在运转一样 像这样: xooo 欧欧欧欧 欧欧欧欧 欧欧欧欧 那么下一步就是 欧欧欧欧 xooo 欧欧欧欧 欧欧欧欧 然后一直走到列的末尾,这样它会移动到另一列,并在后院进行移动(或者它可以移动到新列的第一个点并重复移动) 我正在做的是一个矩阵,并试图使一个有限制的for循环,但它不起作用。。我也是C语言新手 记住,对于编程,我只想打印每个地方,一个接一个 另一个问题:我想买一个开发

我有一个小项目,这是一台在二维空间运动的机器,一次“行走”一个街区。所以我从编程开始,我想按顺序打印数字,就像机器在运转一样

像这样:

xooo

欧欧欧欧

欧欧欧欧

欧欧欧欧

那么下一步就是

欧欧欧欧

xooo

欧欧欧欧

欧欧欧欧

然后一直走到列的末尾,这样它会移动到另一列,并在后院进行移动(或者它可以移动到新列的第一个点并重复移动)

我正在做的是一个矩阵,并试图使一个有限制的for循环,但它不起作用。。我也是C语言新手

记住,对于编程,我只想打印每个地方,一个接一个

另一个问题:我想买一个开发板来做这个,你怎么看我应该使用linux开发驱动程序吗

多谢各位

编辑:这是我的代码崩溃,和sry的新手问题=S

#include <stdio.h>
#include <iostream.h>

int main()
{
    int num[625];
    int x,y,count;
    do
    { 
    printf("\n Inicializando... ");
    num[625]=num[count];
    count++;
    } 
    while (num[count]!= 25);
    if (num[count]=25)
    {
        do
        { 
        printf("\n Inicializando... ");
        num[625]=num[count];
        count++;
        } while (num[count]!= 25);

    }
    for (count=0;count<625;count++)
    printf (" %d",num[count]);

    system("pause");
    return(0);
}
#包括
#包括
int main()
{
整数[625];
整数x,y,计数;
做
{ 
printf(“\n Inicializando…”);
num[625]=num[count];
计数++;
} 
而(num[count]!=25);
如果(num[计数]=25)
{
做
{ 
printf(“\n Inicializando…”);
num[625]=num[count];
计数++;
}而(num[count]!=25);
}

对于(count=0;count这可能不是您问题的实际答案,但是:

int num[625];
...
    num[625]=num[count];
...
在数组中存储一些实际上不存在的东西。C语言是一种相当宽容的语言,您只需在数组之后立即写入其他东西-可能是
x
。这很可能不是您想要做的

以下是对代码的进一步评论:

#include <stdio.h>
#include <iostream.h>   
请注意,除了我上面关于数组外部寻址的评论外,
num[count]
从未被设置过-它具有内存中的任意值-很可能是整数范围内的任意值

    count++;
    } 
    while (num[count]!= 25);
由于
num[count]
没有初始化,它可能是25,也可能永远不会是25。一旦
count
足够高,它可能会崩溃

    if (num[count]=25)
    {
        do
        { 
        printf("\n Inicializando... ");
        num[625]=num[count];
        count++;
        } while (num[count]!= 25);

    }
    for (count=0;count<625;count++)
    printf (" %d",num[count]);
试试这个算法

随意更改NR它是行数或列数

#include<stdio.h>

#define NR 5

int main()
{
   int i,j,loop;
   for( loop=0; loop < NR*NR; loop++)
   {
      printf("Loop %d\n",loop);
      for(i=0;i< NR; i++)
      {
         for (j=0;j<NR;j++)
         {
            if ( loop == NR*j+i )  printf("X ");
            else                  printf("0 ");
         }
         printf("\n");
      }
      printf("\n");
  }
}
#包括
#定义NR 5
int main()
{
inti,j,loop;
for(循环=0;循环对于(j=0;jI认为,如果你是一名C程序员新手,那么谈论Linux驱动程序有点为时过早。为Linux编写驱动程序需要大量经验。这将有助于我们很多人发布你有问题的代码,并解释更多关于“它不起作用”@matstpeterson我编辑,现在使用我的代码=)您是否可以添加关于“它不工作”的部分?它的作用是什么,这与您实际想要做的有什么不同?更不用说
如果(num[count]=25)
实际将
num[count]
设置为25。因此循环总是会发生两次?
    system("pause");
    return(0);
}
#include<stdio.h>

#define NR 5

int main()
{
   int i,j,loop;
   for( loop=0; loop < NR*NR; loop++)
   {
      printf("Loop %d\n",loop);
      for(i=0;i< NR; i++)
      {
         for (j=0;j<NR;j++)
         {
            if ( loop == NR*j+i )  printf("X ");
            else                  printf("0 ");
         }
         printf("\n");
      }
      printf("\n");
  }
}