一、知识点总结:
1.二维数组定义的形式:类型名 数组名[行长度] [列长度]
例如:int a[3][2]:定义一个二维数组a,3行2列,6个元素;
2.二维数组引用的形式:类型名 数组名[行下标] [列下标]
行下标范围:0~行长度-1
列下标范围:0~列长度-1
例如:int a[3][2]:3行2列,6个元素
a[0][0] a[0][1]
a[1][0] a[1][1]
a[2][0] a[2][1]
3.分行赋初值:
①:int a[3][3]={{1,2,3},{4,5,6},{7,8,9}};
1 2 3
4 5 6
7 8 9
②:static int b[4][3]={{1,2,3},{ },{4,5}};
1 2 3
0 0 0
4 5 0
0 0 0
4.顺序赋初值:
①:int a[3][3]={1,2,3,4,5,6,7,8,9};
②:static int b[4][3]={1,2,3,0,0,0,4,5};
5.赋值时省略长度:
int a[ ][3]={1,2,3,4,5,6,7,8,9};
6.字符串常量用一对双引号括起来的字符序列,一个字符串结束符为' ';' '之后的其他数组元素与该字符串无关
字符串有效长度就是有效字符个数;
数组长度>=字符串有效长度+1
二、心得:
上一次问到c语言中定义与声明的区别
函数的定义是一个完整的函数单元,包含函数类型、函数名、形参及形参类型、函数体等,在程序中,函数的定义只能有一次。
函数声明只是对编译系统的一个说明,以告诉电脑在本函数中所调用的函数是什么类型。
调用几次该函数就应在各个主调函数中做相应声明,函数声明是一个说明语句,必须以分号结束
也不清楚总结得是否到位
作业1
#include<stdio.h> int main(void) { int i,j,n,temp; int a[6][6]; printf("Enter n:"); scanf("%d",&n); for(i=0;i<n;i++) for(j=0;j<n;j++) a[i][j]=i*n+j+1; for(i=0;i<n;i++) for(j=0;j<n;j++) if(i<=j) { temp=a[i][j]; a[i][j]=a[j][i]; a[j][i]=temp; } for(i=0;i<n;i++) { for(j=0;j<n;j++) printf("%4d",a[i][j]); printf(" "); } return 0; }
作业2
#include<stdio.h> int main(void) { int i,j; int a[10][10]; for(i=1;i<10;i++) { for(j=1;j<=i;j++) { a[i][j]=i*j; printf("%d*%d=%d ",i,j,a[i][j]); } printf(" "); } return 0; }
作业3
#include<stdio.h> int main(void) { int i=0,index=0,flag=0; char ch[80],m; printf("Input a character:"); scanf("%c",&m); printf("Input a string:"); getchar(); while((ch[i]=getchar())!=' ') { i++; } for(i=0;ch[i]!='