C语言中,对于一个二维数组,我只想打印其中某一行的数据,可以吗?
#include"stdio.h"intmain(){inta[3][4]={{11,12,13,14},{21,22,23,24},{31,32,33,34}};pri...
#include"stdio.h"
int main()
{
int a[3][4] ={{11,12,13,14},{21,22,23,24},{31,32,33,34}};
printf("%d\n",a[1]);
printf("%d\n",a[2]);
return 0;
}
如上,我只想打印第一行和第二行的数据,这样写可以吗,gcc编译通过,但是结果不对。 展开
int main()
{
int a[3][4] ={{11,12,13,14},{21,22,23,24},{31,32,33,34}};
printf("%d\n",a[1]);
printf("%d\n",a[2]);
return 0;
}
如上,我只想打印第一行和第二行的数据,这样写可以吗,gcc编译通过,但是结果不对。 展开
8个回答
展开全部
不可以! %d 代表int 型的数据,a[ 1 ] 这样是第二行的地址
只能以一个printf出来
#include"stdio.h"
int main()
{
int a[3][4] ={{11,12,13,14},{21,22,23,24},{31,32,33,34}};
int i;
for ( i = 0; i < 4; i++ )
printf( "%d ", a[0][i] ); // a[ 0 ] 才是第一行
printf ( "\n" );
for ( i = 0; i < 4; i++ )
printf( "%d ", a[1][i] ); // a[ 1 ] 才是第二行
printf ( "\n" );
return 0;
}
只能以一个printf出来
#include"stdio.h"
int main()
{
int a[3][4] ={{11,12,13,14},{21,22,23,24},{31,32,33,34}};
int i;
for ( i = 0; i < 4; i++ )
printf( "%d ", a[0][i] ); // a[ 0 ] 才是第一行
printf ( "\n" );
for ( i = 0; i < 4; i++ )
printf( "%d ", a[1][i] ); // a[ 1 ] 才是第二行
printf ( "\n" );
return 0;
}
追问
是因为这样的,为看到另外一个程序 如下。
char str[3][20];
int i;
for (i=0;i<3;I++){
gets (str[i]);}
这里就是让我们输入三个字符串,在同一个数组里面,每行输入一串。
这样在一个数组里面,每行可以算作单独的一个字符串吗??这里的str[i]为什么就可以只写行数呢?
追答
i 是从0开始的没错呀,
恩, 字符数组可以一次性puts出来
展开全部
可以单独打印某一行,但是你写的代码有错误,a【1】这样写是一维数组啊 可定不对的 按照二维数组的输出方式你编写就可以了 注意第一个【】就是你要打印的第几行
追问
是因为这样的,为看到另外一个程序 如下。
char str[3][20];
int i;
for (i=0;i<3;I++){
gets (str[i]);}
这里就是让我们输入三个字符串,在同一个数组里面,每行输入一串。
这样在一个数组里面,每行可以算作单独的一个字符串啊??为什么这里可以用str[i],直接用i来代替一个行呢?这不也是一维了么~
追答
你的意思就是输入三行字符串,然后输出其中的一行是吧,那你可以特定的输出啊如输出第二行为 :for(int i=0;i<n;i++)
{
printf("%d",a[2][i]);
}
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
肯定不可以!
for(int i = 0;i < N;i ++)
{
printf("%d ",arr[1][i]);
}
不知你明白了么?
for(int i = 0;i < N;i ++)
{
printf("%d ",arr[1][i]);
}
不知你明白了么?
更多追问追答
追问
请问一下,arr这个是什么意思呢?是自己定义的名字吗?
追答
arr是数组名,相当于你程序中的a,你好好复习一下二维数组的概念,你写的那个a[1]是第二行元素的地址,并非元素本身。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
不可以
改一下
for(int i=0;i++;i<4)
printf("%d\n",a[1][i]);
a[2]那个一样的
改一下
for(int i=0;i++;i<4)
printf("%d\n",a[1][i]);
a[2]那个一样的
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
你的只能打印出a[1][0]的地址。
#include"stdio.h"
int main()
{
int x,y;
int a[3][4] ={{11,12,13,14},{21,22,23,24},{31,32,33,34}};
for(x=0;x<2;x++)
{
printf("\n");
for(y=0;y<4;y++)
{
printf("%d ",a[x][y]);
}
}
return 0;
}
这个可以。
#include"stdio.h"
int main()
{
int x,y;
int a[3][4] ={{11,12,13,14},{21,22,23,24},{31,32,33,34}};
for(x=0;x<2;x++)
{
printf("\n");
for(y=0;y<4;y++)
{
printf("%d ",a[x][y]);
}
}
return 0;
}
这个可以。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询