实验四
part1-part4
函数声明和函数定义中,作为形式参数时数组名后面要加[ ]
函数调用中,实际参数直接写数组名,不用加[ ]。
参数传递过程中,数组名做函数参数时,只是将实参数组的“首地址”传给了形参数组。(形参里出现的数组名,实际上是代表的是一个地址变量,用来存放地址。实际参数中数组的起始地址被复制给了形式参数。实参数组和形参数组对应的是同一组内存空间)
part5
练习1:
代码如下:
// 功能描述:输入一组整数,输出最大值 #include <stdio.h> int findMax(int a[], int n); // 函数声明 const int N=5; int main() { int a[N]; int max, i; printf("输入%d个整数: \n", N); for(i=0;i<N;i++)// 利用循环输入N个整数给数组a scanf("%d",&a[i]);// 补足程序1 max=findMax(a,N);// 调用子函数max求数组a的最大元素值,并赋值给max // 补足程序2 // 。。。 // 输出最大值 printf("数组a中最大元素值为: %d\n\n", max); return 0; } int findMax(int a[], int n){// 函数定义 int max,i,t; // 功能描述:找出整型数组a中元素的最大值,并返回次此最大值 for(i=1;i<n;i++) { if(a[0]<a[i]) {t=a[i]; a[0]=t; if(i==n-1) {max=a[i];}} else { if(i==n-1) max=a[0]; } } // 补足函数findMax()的实现部分3 return max;}// 。。。
结果如下:

练习2:
代码如下:
#include <stdio.h> const int N=4; void output(char x[], int n); // 函数声明 char sort(char x[], int n);// 排序函数声明 // 补足代码1 // 。。。 int main() { char string[N] = {'2','0','1','9'}; int i; printf("排序前: \n"); output(string, N); sort(string, N);// 调用排序函数对字符数组中的字符由大到小排序 // 补足代码2 // 。。。 printf("\n排序后: \n"); output(string, N); printf("\n"); return 0; } // 函数定义 // 函数功能描述:输出包含有n个元素的字符数组元素 // 形参:字符数组,以及字符数组元素个数 void output(char x[], int n) { int i; for(i=0; i<N; i++) printf("%c", x[i]); } char sort(char x[], int n){// 函数定义 int i,j,t; // 函数功能描述:对一组字符由大到小排序 for(j=1;j<n;j++){ for(i=0;i<n-j-1;i++){ if(x[i]>x[i+1]){ t=x[i+1]; x[i+1]=x[i]; x[i]=t; } } // 形参:字符数组,以及字符数组元素个数 } }// 补足代码3
结果如下:


浙公网安备 33010602011771号