定义只有9个元素的数组非要输入10个元素才能输出
我定义了一个3X3的二维数组,来进行行列互换的操作并输出换好后的数组用scanf赋值,输入第九个数字后按enter键没反应光标还是一闪一闪,这时狂按enter或空白键没用
继续输入一个数字,结果正常输出了
我定义的明明是有且仅有9个元素的数组,为什么这里非要我输入10个数字才能正常执行呢、、、
望大神解释一下哎 谢谢了!!!
#include<stdio.h>
#define N 3
int a[N][N]; //定义一个3X3的全局数组a
int main()
{
void swap(int a[][3]);
int i,j;
printf("enter 9 integer numbers to array:\n");
for(i=0;i<N;i++) //输入9个数据
for(j=0;j<N;j++)
scanf("%d ",&a[i][j]);
printf("the old:\n");
for(i=0;i<N;i++) //输出原数组
{
for(j=0;j<N;j++)
printf("%d ",a[i][j]);
printf("\n");
}
swap(a); //进行行列互换
printf("the new:\n");
for(i=0;i<N;i++) //输出行列互换后的新数组
{
for(j=0;j<N;j++)
printf("%d ",a[i][j]);
printf("\n");
}
return 0;
}
void swap(int a[][3]) //定义行列互换函数
{
int i,j,t;
for(i=0;i<N;i++)
for(j=i+1;j<N;j++)
{
t=a[i][j];
a[i][j]=a[j][i];
a[j][i]=t;
}
}