注册 登录
编程论坛 C++教室

C++ 有关数组的一个小小问题。。。。。

ming530108 发布于 2008-06-25 22:22, 642 次点击
已经有一个6行6列的数组maze[6][6],要把0和1输入到里面,不能输入其他的数,

例如:
int a,b;
for(a=0;a<6;a++)
{
   for(b=0;b<6;b++)
   scanf("%d",&maze[i][j]); //%d只是一个空位符
}

这个程序是可以输入任意一个数的。而我只要输入0或1,
比如当我输入2或其他数或字符时,程序要自己识别,当输入的不是0或1时,程序要求重新输入。
3 回复
#2
NCQuan2008-06-26 13:00
int a =0,b =0,v;
for(;a<6;a++)
{ for(;b<6;b++)
 { scanf("%d",&v);
   if ((v == 0)||(v ==1))
          {maze[i][j] =v;}
  else {输出提示重新输入;}
  break;
  }
   }
#3
ming5301082008-06-26 19:44
这样不行丫。。我之前试过了。。
#4
中学者2008-06-26 19:49
#include<stdio.h>
#include<stdlib.h>
int main()
{
    int size,value,i=0,j=0;
    printf("输入数组大小: ");
    scanf("%d",&size);
    int * array=(int*)malloc(sizeof(int)*size*size);
    int n=size;
    while(n>0)
   {
      scanf("%d",value);
      if(value==1||value==0)
      {
          array[i*size+j]=value;
          if(++j==size) ++i,j=0;
          --n;
       }
    }
   free(array);
   return 0;
}
试一下

[[it] 本帖最后由 中学者 于 2008-6-26 19:51 编辑 [/it]]
1