本文目录一览:
- 1、c语言二维数组怎么用
- 2、c语言中二维数组如何使用
- 3、c语言二维数组
- 4、c语言二维数组的运用
c语言二维数组怎么用
我也不是高手,也是初学。正巧碰到这个问题感觉我还是能解决的。就随手写了下,回答下。大家共同进步哈。有不对的地方还要请各位真正的高手指正。
代码在下面,复制到你的编辑器里面看比较好,加了注解的。还有问题就再问哈。
---------------------------------------------------------------
public class d_array
{
public static void main(String[] args)
{
int[][] d_array = new int[8][8]; //定义一个8行8列的二维数组
int num = 1; //定义一个填充用的数备用
for (int i = 0 ; i d_array.length ; i++)
for (int j = 0 ; j d_array[i].length ; j++)
d_array[i][j] = num++;
//让上面那个填充数自加并填充进数组
for (int p = 0 ; p d_array.length ; p++)
{
System.out.println("数组第 "+(p+1)+" 行中的值为:"); //加一句说明是第几行的,不要也可以。
for (int q = 0 ; q d_array[p].length ; q++)
System.out.print(d_array[p][q]+"\t"); //加这个\t可以有效的分离开两个数,排版好看
System.out.print("\n\n"); //换行,第一个用于一行之后换行,第二个用于一个空行,与下面那行隔开,排版好看的
}
//分行打印数组
int sum = 0; //一样,定义一个合备用
for (int m = 0 ; m d_array.length ; m++)
for (int n = 0 ; n d_array[m].length ; n++)
sum = sum + d_array[m][n];
//分别将数组中的各个数加到这个合中去,最后得到的这个合就是数组中所有数的合了。
System.out.println("数组中的所有值得合为:"+sum); //打印结果
}
}
---------------------------------------------------------------
其实二维数组的操作秘诀就是两个for循环套起来用,这样就很简单了。
c语言中二维数组如何使用
#include stdio.h
#include stdlib.h
int main()
{
int i,j,n=1;
int a[15][15];
//赋值
for(j=0;j15;j++)
{
for(i=0;i15;i++)
{
a[j][i] = n;
n++;
}
}
//输出显示
for(j=0;j15;j++)
{
for(i=0;i15;i++)
{
printf("%3d ",a[j][i]);//%3d,3表示3按三个字符对齐
}
printf("\n");//显示完一行换行
}
return 0;
}
c语言二维数组
这个就是指针数组和数组指针的区别了,我当年也在这里转了很久,希望我下面所说得可以帮到你。
首先,明确编译器是怎么识别*s[]和(*s)[]两种形式的代码的。对于*s[],编译器会以默认的右结合的方式进行识别,所以首先识别s[],这是一个数组,然后再识别*,说明这个数组的元素都是指针。所以最后的结果就是:这是一个“以指针为元素的数组”,简称指针数组。而对于(*s)[],由于()的优先级高于*,所以编译器会先识别()里面的,也就是先识别*s,所以它是一个指针,然后()说明这个指针指向的是一个数组,所以最后的结果是:这是一个“指向数组的指针”,简称数组指针。
好吧,我承认一点,就是这两个东西看起来复杂,但是其实用起来区别不大,最本质的东西就是,指针数组用到多个指针,数组指针就完全是一个指针跑天下。
看下面一段代码(我偷懒用C++写的,反正这个不是重点):
#include
using
namespace
std;
int
main()
{
//指针数组
*a[2]
int
t1[3]
=
{0,1,2};
int
t2[3]
=
{3,4,5};
int
t3[3]
=
{6,7,8};
int
*a[3];
a[0]
=
t1;
//一个指针赋值
a[1]
=
t2;
//第二个指针赋值
a[2]
=
t3;
//第三个指针赋值
//数组指针
(*b)[3]
int
(*b)[3]
=
new
int[3][3];
for(int
i=0;i3;i++)
for(int
j=0;j3;j++)
*(*(b+i)+j)
=
i*3+j;
//一个指针跑天下
cout
*((*b)+1)
"
"
*(*(b+1))
endl;
system("pause");
return
0;
}
最后我想说,其实这个做题的时候有用,自己写的时候还是尽量直接用int[n][m]的方式比较方便,稍微浪费点空间问题不大,重要的是看起来好看,不容易出错。
c语言二维数组的运用
#includestdio.h
#define MAX 100
#define LEN 80
main()
{
char text[MAX][LEN];
register int i,j,t;
for(t=0;tMAX;t++)
{
printf("%d:",t);
gets(text[t]); /* 由于 text 定义为二维数组, 所以该循环体的作用就是:循环从键盘输入 MAX-1 次字符串,并存入 text[t] 中,然后 t 依次递增 1 */
if(!text[t][0]) /* 该语句用于判断字符串是否到结尾?,如果到结尾了,即:text[t][0] = '\0',表示只输入了一个回车符,则退出循环 */
break;
}
for(i=0;it;i++)
{
for(j=0;text[i][j];j++)
{
putchar(text[i][j]); /* 显示 text 二维数组中的字符 */
putchar('\n');
}
}
}