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