- 260
- 0
- 约4.57千字
- 约 28页
- 2018-07-09 发布于江苏
- 举报
调用自定义函数输入输出一维数组调用自定义函数9
6.3.1 调用自定义函数输入输出一维数组
6.3.2 调用自定义函数将数据逆置
6.3.3 调用自定义函数求最大值
6.3.4 调用自定义函数判断回文
6.3.5 调用自定义函数计算两个矩阵的和
6.3 调用自定义函数处理数组
P148
6.3.1 调用自定义函数输入输出一维数组
【实例6.6】编写程序,定义2个数组a和b,数组a中存放10种上等产品的产量,数组b中存放6种下等产品的产量。
P148
在主函数中定义数组a和b、调用2次data_in函数给数组a和b输入产量、调用2次data_out函数输出数组a和b中的产量。
data_in和data_out函数的形参应该是指向数组的指针变量和存放数组元素个数的int型变量。
#include stdio.h
void data_in(int *p,int n);
void data_out(int *p,int n);
main()
{ int a[10]={0},b[6]={0};
printf(Input a:); data_in(a,10);
printf(Input b:); data_in(b,6);
printf(Array a:); data_out(a,10);
printf(Array b:); data_out(b,6);
}
定义一次调用两次
定义一次调用两次
减少重复劳动
void data_in(int *p,int n)
{ int i=0;
for(i=0; in; i++,p++)
scanf(%d,p);
}
void data_out(int *p,int n)
{ int i=0;
for(i=0; in; i++,p++)
printf(%5d,*p);
printf(\n);
}
得到数组首地址
void data_in(int *p,int n)
{ int i=0;
for(i=0; in; i++,p++)
scanf(%d,p);
}
void data_out(int *p,int n)
{ int i=0;
for(i=0; in; i++,p++)
printf(%5d,*p);
printf(\n);
}
元素个数不同时也适用
6.3.2 调用自定义函数将数据逆置
【实例6.7】改写实例5.3,调用函数实现逆序存放数据的功能。
P149
调用backward函数将数据逆序存放,调用2次data_out函数输出原始数据和逆序存放后的数据。
#include stdio.h
void backward(int *p,int n);
void data_out(int *p,int n);
main()
{ int a[10]={1,2,3,4,5,6,7,8,9,10};
printf(Original:\n);
data_out(a,10);
backward(a,10);
printf(Final:\n);
data_out(a,10);
}
void backward(int *p,int n)
{ int t=0,*q=NULL;
q=p+n-1;
while(pq)
{ t=*p; *p=*q; *q=t;
p++; q--;
}
}
void data_out(int *p,int n)
{ int i=0;
for(i=0; in; i++,p++)
printf(%5d,*p);
printf(\n);
}
6.3.3 调用自定义函数求最大值
【实例6.8】改写实例5.4,输入100名学生的学号和学年总平均成绩,调用函数找出其中成绩最高的学生。
P151
编写找最大值的函数,该函数功能是找最高成绩对应的下标并返回到主调函数中。
#include stdio.h
#define N 5
void data_in(int *p,float *q);
void data_out1(int *p);
void data_out2(float *p);
int data_max(float *p);
N在各函数中通用,无需传递元素个数
main()
{ int num[N]={0},k=0;
float score[N]={0.0};
printf(numbers and scores:\n);
data_in(num,score);
data_out1(num);
data_out2(score);
原创力文档

文档评论(0)