1.实验结论
Part 1~Part 4 总结体会:
1.在发生函数调用时,形参只能是变量,且只有在调用时,计算机才给它分配内存单元,调用结束则释放分配单元,即其只在内部有效;实参则可以是变量常量等都可以,且其必须有确定的值。形参和实参必须数量相等,形式相同。函数调用前须先前声明定义函数,在需要使用函数计算时引用函数,而函数的具体内容则在主函数外。参数在主程序中一般不含有实际值,其最后的运算结果由代入函数的形式参数经过函数运算后返回得出。
2.对多个元素使用冒泡排序法,若对象数量较多,显然应该设计循环简化运算。依次比较两个元素并交换它们的位置,最后的到目的的排列顺序,设计时要注意主函数,引用函数和循环结构的边界位置,否则容易形成错误。
3.菜是原罪。
Part 5 编程练习
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 // 补足程序1 for(i=0;i<=4;i++) scanf("%d",&a[i]); max=findMax(a,4); printf("数组a中最大元素值为: %d\n\n", max); return 0; } // 调用子函数max求数组a的最大元素值,并赋值给max // 补足程序2 int findMax(int a[],int n){ int i,t; for (i=1;i<n+1;i++) { if(a[i]<a[i-1]) { t=a[i-1]; a[i-1]=a[i]; a[i]=t; } return a[n]; } }
因为一个<=和<花费了很久修改,运行结果如图:
2.
#include <stdio.h> const int N=4; void output(char x[], int n); void order(char x[],int n); int main() { char string[N] = {‘2‘,‘0‘,‘1‘,‘9‘}; int i; printf("排序前: \n"); output(string, N); order(string,N); printf("\n排序后: \n"); output(string, N); printf("\n"); return 0; } void output(char x[], int n) { int i; for(i=0; i<N; i++) printf("%c", x[i]); } void order(char x[], int n) { int i,j,t; for(i=0;i<n-1;i++){ for(j=n-i;j>=0;j--){ if(x[j+1]>x[j]){ t=x[j]; x[j]=x[j+1]; x[j+1]=t; } } } }
运行结果:
——End——
原文:https://www.cnblogs.com/tedyoung1/p/10770891.html