C语言中一个二维数组输入的问题?为什么这个数组只让我输入了第一行
这是代码:#include<stdio.h>main(){inta[2][4];intj=0,m=0,n=0,m1=0,n1=0;for(m1;m1<2;m1++){fo...
这是代码:
#include<stdio.h>
main()
{
int a[2][4];
int j=0,m=0,n=0,m1=0,n1=0;
for(m1;m1<2;m1++)
{
for(n1;n1<4;n1++)
{
printf("请用户输入第%d行%d列的数据:\n",m1+1,n1+1);
scanf("%d",&a[m1][n1]);
printf("\n");
}
}
printf("数据输入完毕。\n");
printf("数据开始输出。\n");
for(m;m<2;m++)
{
for(n;n<4;n++)
{
printf("%d",a[m][n]);
printf(" ");
j++;
if(j==4)
{
printf("\n");
}
}
}
printf("\n");
return 0;
} 展开
#include<stdio.h>
main()
{
int a[2][4];
int j=0,m=0,n=0,m1=0,n1=0;
for(m1;m1<2;m1++)
{
for(n1;n1<4;n1++)
{
printf("请用户输入第%d行%d列的数据:\n",m1+1,n1+1);
scanf("%d",&a[m1][n1]);
printf("\n");
}
}
printf("数据输入完毕。\n");
printf("数据开始输出。\n");
for(m;m<2;m++)
{
for(n;n<4;n++)
{
printf("%d",a[m][n]);
printf(" ");
j++;
if(j==4)
{
printf("\n");
}
}
}
printf("\n");
return 0;
} 展开
3个回答
展开全部
int j=0,m=0,n=0,m1=0,n1=0;
for(m1;m1<2;m1++)
{
//第一个for循环的第一次循环结束后,n1=4;当执行第一个for循环的第二次循环时,n1还是为4
//就不执行第二个for循环了。
//n1的初始化应该在第一个for循环的里面即:
n1=0;
for(n1;n1<4;n1++)
{
printf("请用户输入第%d行%d列的数据:\n",m1+1,n1+1);
scanf("%d",&a[m1][n1]);
printf("\n");
}
}
for(m1;m1<2;m1++)
{
//第一个for循环的第一次循环结束后,n1=4;当执行第一个for循环的第二次循环时,n1还是为4
//就不执行第二个for循环了。
//n1的初始化应该在第一个for循环的里面即:
n1=0;
for(n1;n1<4;n1++)
{
printf("请用户输入第%d行%d列的数据:\n",m1+1,n1+1);
scanf("%d",&a[m1][n1]);
printf("\n");
}
}
展开全部
因为你外循环执行第二次的时候,也就是m1=1的时候,n1已经是等于3了,内循环跳不进去了,所以也不会出现说输入第二行的值。所以你要改成:
#include<stdio.h>
main()
{
int a[2][4];
int j,m,n,m1,n1; /*这里只要定义不要初始化*/
j=0;
for(m1=0;m1<2;m1++) /*在这里初始化m1=0*/
{
for(n1=0;n1<4;n1++) /*在这里初始化n1=0*/
{
printf("请用户输入第%d行%d列的数据:\n",m1+1,n1+1);
scanf("%d",&a[m1][n1]);
printf("\n");
}
}
printf("数据输入完毕。\n");
printf("数据开始输出。\n");
for(m=0;m<2;m++) /*在这里初始化m=0*/
{
for(n=0;n<4;n++) /*在这里初始化n=0*/
{
printf("%d",a[m][n]);
printf(" ");
j++;
if(j==4)
{
printf("\n");
}
}
}
printf("\n");
return 0;
}
#include<stdio.h>
main()
{
int a[2][4];
int j,m,n,m1,n1; /*这里只要定义不要初始化*/
j=0;
for(m1=0;m1<2;m1++) /*在这里初始化m1=0*/
{
for(n1=0;n1<4;n1++) /*在这里初始化n1=0*/
{
printf("请用户输入第%d行%d列的数据:\n",m1+1,n1+1);
scanf("%d",&a[m1][n1]);
printf("\n");
}
}
printf("数据输入完毕。\n");
printf("数据开始输出。\n");
for(m=0;m<2;m++) /*在这里初始化m=0*/
{
for(n=0;n<4;n++) /*在这里初始化n=0*/
{
printf("%d",a[m][n]);
printf(" ");
j++;
if(j==4)
{
printf("\n");
}
}
}
printf("\n");
return 0;
}
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
#include<stdio.h>
main()
{
int a[2][4];
int j=0,m=0,n=0,m1=0,n1=0;//n,n1两个变量在重复使用,只初始化在这可不够
for(m1=0;m1<2;m1++) //m1=0养成好习惯,初始化不赋值不如不写
{
for(n1=0;n1<4;n1++)//写一个=0累不着你,也累不着计算机,省它做啥
{
printf("请用户输入第%d行%d列的数据:\n",m1+1,n1+1);
scanf("%d",&a[m1][n1]);
printf("\n");
}
}
printf("数据输入完毕。\n");
printf("数据开始输出。\n");
for(m=0;m<2;m++)//m=0 养成好习惯,初始化不赋值不如不写
{
for(n=0;n<4;n++)//写一个 =0 累不着你,也累不着计算机,省它做啥
{
printf("%d",a[m][n]);
printf(" ");
j++;
if(j==4)
{
printf("\n");
}
}
}
printf("\n");
return 0;
}
main()
{
int a[2][4];
int j=0,m=0,n=0,m1=0,n1=0;//n,n1两个变量在重复使用,只初始化在这可不够
for(m1=0;m1<2;m1++) //m1=0养成好习惯,初始化不赋值不如不写
{
for(n1=0;n1<4;n1++)//写一个=0累不着你,也累不着计算机,省它做啥
{
printf("请用户输入第%d行%d列的数据:\n",m1+1,n1+1);
scanf("%d",&a[m1][n1]);
printf("\n");
}
}
printf("数据输入完毕。\n");
printf("数据开始输出。\n");
for(m=0;m<2;m++)//m=0 养成好习惯,初始化不赋值不如不写
{
for(n=0;n<4;n++)//写一个 =0 累不着你,也累不着计算机,省它做啥
{
printf("%d",a[m][n]);
printf(" ");
j++;
if(j==4)
{
printf("\n");
}
}
}
printf("\n");
return 0;
}
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询