1. 二维数组及其见怪不怪的初始化(41.4.6、42.4.7)
- demo_arrays.c 二维数组的初始化赋值、输出(常量表达式里可以不写行,但是一定要写列)
#include
int main()
{
int arr[2]={1,2};
int array2[3][4]={10,20,35,45,52,69,78,88,99,100,111,122};
int i,j;
for(i=0;i<3;i++){
for(j=0;j<4;j++){
printf("(%d,%d,%d):",i,j,array2[i][j]);
printf("%d",array2[i][j]);
}
putchar('\n');
}
return 0;
}
2. 二维数组应用之找最大值及对应下标(43.4.8)
#include
int main()
{
int i;
int j;
int line;
int column;
int array[3][4] = {{1,20,35,48}
,{54,64,72,84}
,{99,100,111,122}};
int max;
for(i=0;i<3;i++){
for(j=0;j<4;j++){
printf("%d \t",array[i][j]);
}
printf("\n");
}
max = array[0][0];
for(i=0;i<3;i++){
for(j=0;j<4;j++){
if(max < array[i][j]){
max = array[i][j];
line = i+1;
column = j+1;
}
}
}
printf("其中在%d行第%d列的数%d最大\n",line,column,max);
return 0;
}
第五章函数
3. 为什么需要用函数(44.5.1)
- 避免代码冗长
- 模块化的设计思路
- 按功能划分,每个函数代表一个功能,而函数的名字要体现函数的功能含义,类似变量标识符y=f(x)
4. 函数三要素(45.5.2)
- 函数名:体现功能
- 参数列表
比如y=f(x),x就是参数;
比如z=f(x,y),x,y就是参数;
参数的个数根据需求自行定义
- 返回值
比如y=f(x),y是函数根据x的值和f的功能执行后的结果另外,函数体:执行什么样的功能,涉及的处理代码叫做函数体
5. 函数的封装和调用(46.5.3)
- demo_func.c 定义无参数函数、定义有参数有返回值函数(如y=f(x)
一个返回值,一个参数)
#include
void welcome()
{
printf("========================\n");
printf("欢迎来到我的程序,baby\n");
printf("========================\n");
}
int getDataFromX(int x)
{
int data;
data = x;
return data;
}
int main()
{
int x;
int y;
welcome();
puts("请输入一个数:");
scanf("%d",&x);
y = getDataFromX(x+10);
printf("x=%d,y=%d\n",x,y);
return 0;
}
6. 函数的封装和调用2(47.5.4)
- demo_add.c 定义有参数有返回值函数、空函数、函数调用注意的几个问题
#include
int add(int data1, int data2, int data3)
{
int ret;
ret = data1 + data2 + data3;
return ret;
}
int main()
{
int x;
int y;
int z;
int fret;
puts("请输入一个数:");
scanf("%d",&x);
puts("请再输入一个数:");
scanf("%d",&y);
puts("请再输入一个数:");
scanf("%d",&z);
fret = add(x,y,z)+100;
printf("%d+%d+%d=%d\n",x,y,z,add(x,y,z));
printf("FRET=%d\n",fret);
return 0;
}
7. 形参实参区别(48.5.5)
#include
int test(int x)
{
printf("test的x内存地址是%p,数值是%d\n",&x,x);
return 0;
}
int main()
{
int x;
int y;
puts("请输入一个数:");
scanf("%d",&x);
printf("main的x内存地址是%p,数值是%d\n",&x,x);
y = test(x);
return 0;
}
8. 编程案例函数封装获取两个数的大数(49.5.6)
#include
float getMaxDataFromTwo(float x, float y)
{
return x>y?x:y;
}
int main()
{
float data1;
float data2;
float maxOne;
puts("请输入两个数:");
scanf("%f%f",&data1,&data2);
maxOne = getMaxDataFromTwo(data1, data2);
printf("两个数据是%.2f,%.2f,大数是:%.2f\n",data1,data2,maxOne);
return 0;
}