金陵科技学院实验报告
/**********FOUND**********/
int a[2][3]={1,34,23,56,345,7};
/**********FOUND**********/ max=a[0][0]; s=t=0;
for(i=0;i<2;i++)
/**********FOUND**********/ for(j=0;j<3;j++) if(a[i][j]>max)
{ max=a[i][j]; s=i; t=j; } /**********FOUND**********/
printf(\}
3、程序设计
说明,所有题目均需添加main(),在main()中调用子函数并设计完整的输入输出才可调试通过。 (1) 功能:编写函数float fun(int n),求一分数序列2/1,3/2,5/3,8/5,13/8,21/13?的前n项之和。
说明:每一分数的分母是前两项的分母之和,每一分数的分子是前两项的分子之和。 例如:求前20项之和的值为32.660259。
(2)完成子函数int fun(int n),找出一个大于给定整数且紧随这个整数的素数,并作为函数值返回。
(3)功能:编写函数void fun(int n,int a[]),按顺序将一个4位的正整数每一位上的数字存到一维数组,然后在主函数输出。例如输入5678,则输出结果为 5 6 7 8。
(4)功能:编写函数void fun(int arr[],int n)将一个数组中的值按逆序存放,并在main()函数中输出。
例如:原来存顺序为8,6,5,4,1。要求改为:1,4,5,6,8。
(5) 功能:程序定义了N×N的二维数组,并在主函数中自动赋值。请编写函数fun(int a[][N],int n),使数组a左下三角元素中的值乘以n。 例如:若n的值为3,a数组中的值为
| 1 9 7 | | 3 9 7 | a = | 2 3 8 | 则返回主程序后a数组中的值应为 | 6 9 8 | | 4 5 6 | | 12 15 18|
(6)功能:编写函数void fun(int array[3][3]),实现矩阵(3行3列)的转置(即行列互换)。
例如:输入下面的矩阵: 100 200 300 400 500 600 700 800 900 程序输出:
100 400 700 200 500 800
11
金陵科技学院实验报告
300 600 900
4、讨论、思考题 (1)功能:编写函数float fun(),利用以简单迭代方法Xn+1=cos(Xn)求方程:cos(x)-x=0的一个实根。迭代步骤如下:
1)取x1初值为0.0;
2)x0=x1,把x1的值赋给x0;
3)x1=cos(x0),求出一个新的x1;
4)若x0-x1的绝对值小于0.000001,执行步骤(5),否则执行步骤(2); 5)所求x1就是方程cos(x)-x=0的一个实根,作为函数值返回。 输出:程序将输出结果Root=0.739085。
(2)功能:编写float fun(float array[],int n),统计出若干个学生的平均成绩,最高分以及得最高分的人数。
例如:输入10名学生的成绩分别为92,87,68,56,92,84,67,75,92,66,则输出平均成绩为77.9,最高分为92,得最高分的人数为3人。
(3)编写函数 int fun(int lim,int aa[MAX]),该函数的功能是求出小于lim的所有素数并放在aa数组中,该函数返回求出素数的个数。
(4)功能:编写函数int fun(int a[M][M]),求5行5列矩阵的主、副对角线上元素之和。注意,两条对角线相交的元素只加一次。
(5)功能:请编一个函数void fun(int tt[M][N],int pp[N]),tt指向一个M行N列的二维数组,求出二维数组每列中最小元素,并依次放入pp所指一维数组中。二维数组中的数已在主函数中赋予。
程序清单及流程图:
<1> #include
int n; float y;
scanf(\ y=fun(n);
float fun (int n); {
int i;
float f1=1,f2=1,f3,s=0; for(i=0;i<=n;i++) {
f3=f1+f2; f1=f2; f2=f3;
12
金陵科技学院实验报告
s=s+f2/f1; }
return s;
printf(\ } }
<2> #include
#include
int i,k;
for(i=n+1; ;i++) {
for(k-2;k
return i;
} }
main() {
int m;
scanf(\
printf(\}
<3> #include
#include
void fun(int n,int a[]);
main() {
int m,a[4]={0},n,i; scanf(\ if(m<10000) {
fun(m,a);
for(i=0;i<4;i++) {
printf(\
13 金陵科技学院实验报告
} } }
void fun(int n,int a[]) {
int i=3; while(n!=0) {
a[i--]=n; n=n/10; } }
<4> #include
void fun(int arr[],int n) {
int i,temp;
for(i=0;i<=n/2;i++) {
temp=arr[i];
arr[i]=arr[n-1-i]; arr[n-1-i]=temp; } }
main() {
int i,n,arr[100]={8,6,5,4,1}; scanf(\ fun(arr,5);
for(i=0;i<5;i++)
printf(\}
<5> #include
void fun(int a[][N]); void main() {
int i,j,a[N][N]; for(i=0;i 14