会C语言的进,救命了

来源:百度知道 编辑:UC知道 时间:2024/05/11 19:53:02
#include<stdio.h>
void main()
{
int i,m,a[2][2];
for(i=0;i<=2;i++)
{ for(m=0;m<=2;m++)
scanf("%d",&a[i][m]); } for(i=0;i<=2;i++)
{ for(m=0;m<=2;m++)printf("%d ",a[i][m]);}getch();}

我输入1234 它竟然输出1334 怎么回事啊
拜托会的讲下

int i,m,a[2][2];
for(i=0;i<=2;i++)
for(m=0;m<=2;m++)
数组下标从0开始,
你定义a[2][2]你最多能存取2 个元素,可你的下标为i<=2,m<=2实际上是0,1,2,
读了三个,溢出了。

#include<stdio.h>
void main()
{
int i,m,a[2][2];
for(i=0;i<2;i++)
{ for(m=0;m<2;m++)
scanf("%d",&a[i][m]); }
for(i=0;i<2;i++)
{ for(m=0;m<2;m++)printf("%d ",a[i][m]);}getch();}

下标越界....

数组a[2][2]是2*2的
每行有2个
for循环时,从0到<=2,是三个
发生了数组下标的越界
所以出错

正确的我改了下,你试试
#include<stdio.h>
void main()
{
int i,m,a[2][2];
for(i=0;i<2;i++)
{ for(m=0;m<2;m++)
scanf("%d",&a[i][m]); }
for(i=0;i<2;i++)
{ for(m=0;m<2;m++)printf("%d ",a[i][m]);}getch();}

a[2][2] 下标是0-1 ...
for(m=0;m<2;m++)
都没有等于号......