实验4
实验结论
part1~part4
1.函数声明和函数定义中,数组名作为形式参数时,数组名后面要加[ ]
函数调用中,数组名作为实际参数时,直接写数组名
2.当实参数组传递为形参时,形参的数组并不分配新的存储单元,而是将形参数组与实参数组共同占用一段存储区域
3.冒泡法排序基本思想:两个相邻的元素依次比较,将较大(或较小)的元素放在后面,直到最后一个数,这就完成了一趟冒泡。此时最大值(或最小值)放置在了数组的尾部,出去它,剩下的数再依次比较两个相邻的元素,当所有的元素都经过比较和交换的操作后,就能得到排好的序列。
因为对n个数进行排列,共需扫描n-1遍,第i遍扫描时需要比较n-i次,当最后一遍扫描时就需要比较(n-1-i)次,所以边界条件为i<n-1和j<n-1-i
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); // 利用循环输入N个整数给数组a for(i=0;i<N;i++) scanf("%d",&a[i]);// 补足程序1 // 。。。 max=findMax(a,N);// 调用子函数max求数组a的最大元素值,并赋值给max // 补足程序2 // 。。。 // 输出最大值 printf("数组a中最大元素值为: %d\n\n", max); return 0; } // 函数定义 // 功能描述:找出整型数组a中元素的最大值,并返回次此最大值 // 补足函数findMax()的实现部分3 // 。。。 int findMax(int a[],int n){ int i,max; max=a[0]; for(i=0;i<n;i++){ if(a[i]>max) max=a[i]; } return max; }

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

实验总结与体会
自己动手编写程序对我来说还是有点难度(T_T)

浙公网安备 33010602011771号