0

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

像这样:

XOOOO

哦哦哦

哦哦哦

哦哦哦

那么下一步将是

哦哦哦

XOOOO

哦哦哦

哦哦哦

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

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

请记住,对于编程,我只想逐个打印每个位置。

另一个问题:我正在考虑买一块开发板来做这个,你怎么看?=) 我应该使用 linux 开发驱动程序吗?

非常感谢。

编辑:这是我崩溃的代码,请注意新手问题=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);
}
4

2 回答 2

1

这可能不是您问题的实际答案,但是:

int num[625];
...
    num[625]=num[count];
...

将某些内容存储在实际不存在的数组位置中。而且 C 是一种相当宽松的语言,您只是在数组之后立即写入其他内容 - 可能是x. 这很可能不是您想要做的。

对这里的代码的一些进一步评论:

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

stdio.hiostream(iostream.h非常旧 - 如果您使用的是符合标准的编译器,则使用iostream- 但是,由于您还将其标记为 C,而不是 C++,我建议将其完全删除。

int main()
{
    int num[625];
    int x,y,count;
    do
    { 
    printf("\n Inicializando... ");
    num[625]=num[count];

请注意,除了我上面关于在数组外部寻址的评论之外,num[count]从未设置过 - 它具有该内存中恰好存在的任何值 - 这很可能只是整数范围内的任何值。

    count++;
    } 
    while (num[count]!= 25);

由于num[count]未初始化,它可能永远不会是 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]);

我从来都不喜欢一个函数中超过两个,甚至三个连续的空行。

    system("pause");
    return(0);
}
于 2013-03-06T18:20:12.137 回答
1

试试这个算法。

Change NR By will 它是行数或列数。

#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");
  }
}
于 2013-03-07T09:40:32.373 回答