
c编程:
#include<stdioh>
#define N 20
int secondmaxf(int a,int n) { int i,m1,m2; //m1是最大数,m2是次大数
m1=a[0]; m2=a[1]; if ( m1<m2 ) {i=m1;m1=m2;m2=i;}保证m1>m2
for ( i=2;i<n;i++ )
if ( a[i]>m1 ) { m2=m1; m1=a[i]; } //如果a[i]比最大值还大,原来最大值保存到m2,m1存a[i]
else if ( a[i]>m2 ) m2=a[i]; //如果a[i]仅大于次大值,次大值保存a[i]
return m2; //返回次大值
}
void main() { int a[N],i;
for ( i=0;i<N;i++ ) scanf("%d",&a[i]); //输入数组
i=secondmaxf(a,N); printf("%d\n",i);
}
#include<cstdio>
#include<algorithm>
using namespace std;
const int maxn = 1024;
int arr[maxn];
void init(int n, int Min, int Max, int sum)
{
for(int i = 0; i < n; i++)
{
scanf("%d", &arr[i]);
Min = min(Min, arr[i]);
Max = max(Max, arr[i]);
sum += arr[i];
}
sort(arr, arr + n);
return;
}
int main(void)
{
int n; scanf("%d", &n);
int Min = 0x7fffffff, Max = 0x80000000, sum = 0;
init(n, &Min, &Max, &sum);
printf("%d %d %d\n", Min, Max, sum / n);
for(int i = 0; i < n; i++)
printf("%d ", arr[i]);
return 0;
}
#include <iostream>
#include <algorithm>
#include <cstring>
using namespace std;
int a[10000];
int main(){
int n;
double sum=0;
cin>>n;
memset(a,0,sizeof(a));
for(int i=0;i<n;i++){
cin>>a[i];
sum+=a[i];
}
sort(a,a+n);
cout<<a[n-1]<<" "<<a[n-2]<<" "<<a[n-3]<<endl;
cout<<"n个数的抄ave="<<sum/n<<endl;
cout<<"最大三个数的ave="<<double((a[n-1]+a[n-2]+a[n-3]))/3<<endl;
//system("pause");
return 0;
}
代码修改及运行结果如下:
#include<stdioh>
void intput(int p,int n)//参数类型错误
{
//void arraysum(int p,int n);//没用吧
int i;
for(i=0;i<n;i++)
scanf("%d",p+i);
}
float arraysum(int p,int n)//返回类型不正确
{
float sum=0;//未初始化
int i;
for(i=0;i<n;i++)
sum=sum+(p++);
return sum;//返回结果
}
int main()
{
int a[10],n=10;//你这号的意义是什么,你没搞清吧
intput(a,n);
printf("sum=%f",arraysum(a,n));//调用错误
return 0;
}
欢迎分享,转载请注明来源:内存溢出
微信扫一扫
支付宝扫一扫
评论列表(0条)