#include<stdio.h> int f1(int x, int y) { x=x+y; y=x+y; printf("x=%3d, y=%3d\n",x,y); return x+y; } void main() { int x=5,y=8; int z=f1(x,y); printf("x=%3d, y=%3d, ",x,y); printf("z=%3d\n",z); }
请输入运行结果:
实验程序1的运行结果: x= 13, y= 21 x= 5, y= 8, z= 34
#include<stdio.h> void f2(int a[], int n, int* s); void main() { int a[5]={2,7,5,4,9}; int x; f2(a,5,&x); printf("%d\n",x); } void f2(int a[], int n, int* s) { int i; *s=0; for(i=0; i<n; i++) *s+=a[i]; }
请输入运行结果:
实验程序2的运行结果: 27
根据函数原型int ff1(int a[], int n)编写出函数定义,对于数组a中的n个元素,请采用单重循环方法求出并返回两个元素值之和的最大值。
请输入运行结果:
实验程序3的运行结果: #include<stdio.h> int ff1(int a[], int n) { int i,max1, max2; if(n<2) {printf("数组长度小于2,返回-1!\n"); return -1;} if(a[0]>=a[1]) {max1=a[0]; max2=a[1];} else {max1=a[1]; max2=a[0];} for(i=2; i<n; i++) if(a[i]>max1) {max2=max1; max1=a[i];} else if(a[i]>max2) max2=a[i]; return max1+max2; } void main() { int a[9]={14,45,23,78,66,40,87,55,60}; int y; y=ff1(a,9); printf("%d\n",y); }