1、定义一个二维数组,循环输出二维数组中每一个元素的地址,再输出元素的八进制和十六进制。
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
int main(int argc, const char *argv[])
{
int s[2][3]={1,2,3,4,89,34};
int i=0,j=0;
for(i=0;i<2;i++)
{
for(j=0;j<3;j++)
{
printf("%p\n",&s[i][j]);
printf("%0X\n",s[i][j]);
printf("%o\n",s[i][j]);
}
}
return 0;
}
2、求二维数组中的最大值,并求最大值的行标和列标
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
int main(int argc, const char *argv[])
{
int arr[2][3]={90,100,78,32,300,16};
int i,j,h_index=0,l_index=0;
for(i=0;i<2;i++)
{
for(j=0;j<3;j++)
{
if(arr[i][j]>arr[h_index][l_index])
{
//更新下标
h_index = i;
l_index = j;
}
}
}
printf("最大值的行标为%d,列标为%d,最大值为%d\n",h_index,l_index,arr[h_index][l_index]);
return 0;
}
3、打印杨辉三角
#include <stdio.h>
int main(int argc, const char *argv[])
{
int i=0;
int j=0;
int s1[10][10]={0};
for(i=0;i<10;i++){
for(j=0;j<=i;j++){
if(0==j)
{
s1[i][j]=1;
}else{
s1[i][j]=s1[i-1][j-1]+s1[i-1][j];
}
printf("%d ",s1[i][j]);
if(j==i)
printf("\n");
}
}
return 0;
}
总结:
二维数组初始化时,列是不能省略的,因为二维数组的本质就是一维数组,是一段连续的空间。而二维数组输出都是通过行列两个循环来控制二维整型数组的输入和输出。
指针是一个变量,它的大小在64位系统里是8字节,在32位系统里是4字节,指针指向的是地址。
作业:
3、5、6:有道云笔记