本文目录一览:
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; j < 15; j++)
{
for(i = 0; i < 15; i++)
{
a[j][i] = n;
n++;
}
}
//输出显示
for(j = 0; j < 15; j++)
{
for(i = 0; i < 15; i++)
{
printf("%3d ", a[j][i]); // %3d,3表示按三个字符对齐
}
printf("\n"); // 显示完一行换行
}
return 0;
}
c语言二维数组
这个就是指针数组和数组指针的区别了,我当年也在这里转了很久,希望我下面所说得可以帮到你。
首先,明确编译器是怎么识别*s[]
和(*s)[]
两种形式的代码的。对于*s[]
,编译器会以默认的右结合的方式进行识别,所以首先识别s[]
,这是一个数组,然后再识别*
,说明这个数组的元素都是指针。所以最后的结果就是:这是一个“以指针为元素的数组”,简称指针数组。而对于(*s)[]
,由于括号的优先级高于*
,所以编译器会先识别括号内的内容,也就是先识别*s
,所以它是一个指针,然后括号说明这个指针指向的是一个数组,所以最后的结果是:这是一个“指向数组的指针”,简称数组指针。
好吧,我承认一点,就是这两个东西看起来复杂,但是其实用起来区别不大,最本质的东西就是,指针数组用到多个指针,数组指针就完全是一个指针跑天下。
看下面一段代码(我偷懒用C++写的,反正这个不是重点):
#include <iostream>
using namespace std;
int main()
{
//指针数组
int *a[3];
int t1[3] = {0, 1, 2};
int t2[3] = {3, 4, 5};
int t3[3] = {6, 7, 8};
a[0] = t1; //一个指针赋值
a[1] = t2; //第二个指针赋值
a[2] = t3; //第三个指针赋值
//数组指针
int (*b)[3];
b = new int[3][3];
for(int i = 0; i < 3; i++)
for(int j = 0; j < 3; j++)
*(*(b + i) + j) = i * 3 + j; //一个指针跑天下
cout << *(*(b) + 1) << " " << *(*(b + 1)) << endl;
system("pause");
return 0;
}
最后我想说,其实这个做题的时候有用,自己写的时候还是尽量直接用int[n][m]
的方式比较方便,稍微浪费点空间问题不大,重要的是看起来好看,不容易出错。
c语言二维数组的运用
#include <stdio.h>
#define MAX 100
#define LEN 80
main()
{
char text[MAX][LEN];
register int i, j, t;
for(t = 0; t < MAX; 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; i < t; i++)
{
for(j = 0; text[i][j]; j++)
{
putchar(text[i][j]); /* 显示 text 二维数组中的字符 */
putchar('\n');
}
}
}