二维数组作为函数参数的问题
各位大侠帮我分析下程序吧:#include<stdio.h>
main()
{
int a[2][1],b,c;
do
{
scanf("%d",&b);
if(b==1)
{
for(c=0;c<2;c++)
scanf("%d%d",&a[c][0],&a[c][1]);
}
if(b==2)
{
for(c=0;c<2;c++)
printf("%d,%d\n",a[c][0],a[c][1]);
}
}
while(b!=0);
}
我想要的效果是输入1后,开始输入4个变量,输入2,开始输出4个变量,输入0,退出;
为什么我输入的四个变量是1 2 3 4,输入2输出的四个变量却成了
1,3
3,2
这是怎么回事呢?应该怎么修改才能让输出的结果是
1,2
3,4 呢?
出现这个错误是由于一个小失误造成的,我想要的是一个两行两列的4个变量,结果却定义成了a[2][1],
应该改为a[2][2],调试无错误。
下面是我复杂化的一个程序:
#include<stdio.h>
void shuchu(int a[][2], char b[][20])
{
int x;
for(x=0;x<2;x++)
printf("%s\t%d\t%d\n",b[x],a[x][0],a[x][1]);
}
main()
{
char b[2][20];
int a[2][2],c,x;
do
{
scanf("%d",&x);
if(x==1)
{
for(c=0;c<2;c++)
{
scanf("%s",b[c]);
scanf("%d%d",&a[c][0],&a[c][1]);
}
}
if(x==2)
shuchu(a,b);
}
while(x!=0);
}
大家借鉴下哦;
[ 本帖最后由 小赵q1 于 2011-12-12 11:35 编辑 ]