C语言二维数组 int arr[2][3]
生活随笔
收集整理的這篇文章主要介紹了
C语言二维数组 int arr[2][3]
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
基礎使用
先遍歷行再遍歷列
#include<stdio.h> //二維數組的基本使用 int main() {//二維數組的初始化int arr1[2][2]={{2,2},{0,0}};int arr2[2][3]={2,2,2,8,8,8};int arr3[6][9];int i,j;for(i=0;i<6;i++){for(j=0;j<9;j++){arr3[i][j]=1;}}arr3[2][5]=0;//打印printf("arr1:\n");for(i=0;i<2;i++){for(j=0;j<2;j++){printf("%d ",arr1[i][j]);}printf("\n");}printf("arr2:\n");for(i=0;i<2;i++){for(j=0;j<3;j++){printf("%d ",arr2[i][j]);}printf("\n");}printf("arr3:\n");for(i=0;i<6;i++){for(j=0;j<9;j++){printf("%d ",arr3[i][j]);}printf("\n");}getchar();return 0; }內存布局
元素的地址連續分布,每一個元素在前一個的基礎上加4(int)
#include<stdio.h> //二維數組的內存布局 int main() {//二維數組的初始化int arr[2][2]={{2,2},{0,0}};int i,j;//打印printf("arr1:\n");for(i=0;i<2;i++){for(j=0;j<2;j++){printf("%d ",arr[i][j]);}printf("\n");}//打印首地址printf("arr的首地址:%p\n",arr);printf("arr[0]的地址:%p\n",arr[0]);printf("arr[0][0]的地址:%p\n",&arr[0][0]);//打印所有地址printf("所有地址:\n");for(i=0;i<2;i++){for(j=0;j<2;j++){printf("arr[%d][%d]的地址:%p\t",i,j,&arr[i][j]);}printf("\n");}getchar();return 0;} //輸出: //arr1: //2 2 //0 0 //arr的首地址:0055F7F0 //arr[0]的地址:0055F7F0 //arr[0][0]的地址:0055F7F0 //所有地址: //arr[0][0]的地址:0055F7F0 arr[0][1]的地址:0055F7F4 //arr[1][0]的地址:0055F7F8 arr[1][1]的地址:0055F7FC行和列
#include<stdio.h> int main() {int arr[2][3]={{2,6,8},{3,0,1}};//sizeof(arr):2x3x4=24 整個二維數組的字節//sizeof(arr[0]):3x4=12 第一行的字節//行:int row=sizeof(arr)/sizeof(arr[0]);//24/12=2//列://sizeof(arr[0]):3x4=12 第一行的字節int col=sizeof(arr[0])/sizeof(int);//12/4=3printf("行:%d 列:%d",row,col);getchar();return 0; }案例:計算平均成績
方式1:
#include<stdio.h> int main() {double student[3][5];int row=sizeof(student)/sizeof(student[0]);int col=sizeof(student[0])/sizeof(double);int i,j;double s1=0,s2=0,s3=0,s=0;for(i=0;i<row;i++){for(j=0;j<col;j++){scanf("%lf",&student[i][j]);s+=student[i][j];}}for(j=0;j<col;j++){s1+=student[0][j];s2+=student[1][j];s3+=student[2][j];}printf("所有班的平均成績:%.2f\n",s/(row*col));printf("1班的平均成績:%.2f\n",s1/col);printf("2班的平均成績:%.2f\n",s2/col);printf("3班的平均成績:%.2f\n",s3/col);getchar();//entergetchar();return 0; }方式2:
#include<stdio.h> int main() {double student[3][5];int row=sizeof(student)/sizeof(student[0]);int col=sizeof(student[0])/sizeof(double);int i,j;double a=0,s=0;for(i=0;i<row;i++){a=0;for(j=0;j<col;j++){scanf("%lf",&student[i][j]);a+=student[i][j];s+=a;}printf("%d班的平均成績:%.2f\n",i+1,a/col);}printf("所有班的平均成績:%.2f\n",s/(row*col));getchar();//entergetchar();return 0; }注意事項
總結
以上是生活随笔為你收集整理的C语言二维数组 int arr[2][3]的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: codeforces 467A-C语言解
- 下一篇: Java中获取classpath路径下的