本文介绍了错误在用C多维数组程序的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我做了一个涉及多维数组(它打印字符的多维数组)审查一个小C程序,但是我碰到一个错误来了。

I've made a C program that involves multi-dimensional arrays (it prints a multi-dimensional array of characters) to review a little, but I came across a bug.

我的预期程序输出是:

.
.
.
A
.
.
.
.
.

不过输出我得到的是:

However the output I get is:

.
.
A     //Not meant to be 'A' but rather a '.'
A
.
.
.
.
.    

我想知道我是如何获得额外的'A'位置[0] [2],我怎么能解决这个问题。

下面是我的code:

#include <stdio.h>

void initArray(char shape[][2]);

main()
{
      char shape[2][2];
      int i, j;

      initArray(shape);
      shape[1][0] = 'A';
      printf("%c\n%c\n%c\n", shape[0][0], shape[0][1], shape[0][2]);  
      printf("%c\n%c\n%c\n", shape[1][0], shape[1][1], shape[1][2]);
      printf("%c\n%c\n%c\n", shape[2][0], shape[2][1], shape[2][2]);

      getchar();
}

void initArray(char shape[][2])
{
      int  i, j;

      for(i = 0; i < 3; i ++)
      {
            for(j = 0; j < 3; j++)
            {
                  shape[i][j] = '.';                  
            }
      }
}

非常感谢你= D

Thank you very much =D

推荐答案

由于您需要循环直到&LT; 2 形状声明为定型[2] [2]

Because you need to loop till < 2 as shape is declared as shape[2][2]

 for(i = 0; i < 2;i++)
   for(j = 0; j < 2; j++)

这将遍历形状在行&安培;列 0-1 既包括

This will iterate over the shape on row & columns 0-1 both inclusive

这篇关于错误在用C多维数组程序的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持!

10-24 02:36