十年网站开发经验 + 多家企业客户 + 靠谱的建站团队
量身定制 + 运营维护+专业推广+无忧售后,网站问题一站解决
#includestdio.h
崇川ssl适用于网站、小程序/APP、API接口等需要进行数据传输应用场景,ssl证书未来市场广阔!成为创新互联的ssl证书销售渠道,可以享受市场价格4-6折优惠!如果有意向欢迎电话联系或者加微信:18980820575(备注:SSL证书合作)期待与您的合作!
#define N 10
main()
{
int p=0,q,a[N],i,s;
int max(int x,int y);
int min(int x,int y);
printf("请输入%d个正整数\n\n",N);
for (i=0;iN;i++)
scanf("%d",a[i]);
for(i=0,q=a[0];iN;i++)
{
p=max(a[i],p);
q=min(a[i],q);
}
s=p-q;
printf("\n最大值为%d\n最小值为%d\n这批数中最大值与最小值的差为%d\n",p,q,s);
return 0;
}
int max(int x,int y)
{
int max;
max=xy?x:y;
return max;
}
int min(int x,int y)
{
int min;
min=xy?x:y;
return min;
}
#includestdio.h
void fun(int *a,int n)
{
int max,min,sum=0;
int x,y; //记录最大最小的下标
double aver; //计算平均值
min=max=a[0];
for(int i=0;in;i++)
{
sum+=a[i];
if(a[i]max) { max=a[i]; x=i; }
if(a[i]min) { min=a[i]; y=i; }
}
aver=sum/n; //计算平均值
printf("该数组的平均值为%lf\n",aver);
printf("该数组的最大值下标为%d\n",x);
printf("该数组的最小值下标为%d\n",y);
}
int main()
{
int a[10]={1,2,3,4,5,6,7,8,9,10};
fun(a,10);
return 0;
}
不用复杂算法的方法:
#include stdio.h
#include stdlib.h
void swap(int *num1, int *num2)
{
int n;
if(*num1 *num2){
n = *num2;
*num2 = *num1;
*num1 = n;
}
}
//greatest common divisor
int gcd(int num1, int num2)
{
int i;
for(i=num1; i1; i--){
if((num1%i == 0) (num2%i == 0))
break;
}
return i;
}
// least common multiple number
int lcm(int num1, int num2)
{
int i;
for(i=num2; inum1*num2; i++){
if((i%num1 == 0) (i%num2 == 0))
break;
}
return i;
}
int main(int argc, char *argv[])
{
int n1, n2;
if(argc 2)
return;
n1 = atoi(argv[1]);
n2 = atoi(argv[2]);
swap(n1, n2);
if(n1 = 1){
printf("Invalid number: %d, %d\n", n1, n2);
return 0;
}
printf("Greatest common divisor: %d\n", gcd(n1, n2));
printf("Least common multiple number: %d\n", lcm(n1, n2));
return 0;
}
前面已经有两位高手做出了回答,我运行了一下,《怺逺恒暒》有时候得不到正确的结果;《kaixingui2012》的不能运行,提示类型不对。不知道什么原因,也许是我的版本有问题?
我也做了一个,感觉运行还是不错的。请比较吧!
#include "stdio.h"
double fun(double a[],int n,int *max,int *min);/*函数原型声明:其中a为数组,
n为数组元素个数,max指向最大数,min指向最小数,函数返回值为平均值*/
int main()
{
double b[10],aver;
int x,y=10,max=0,*ma=max,min=0,*mi=min;
for(x=0;xy;x++){b[x]=x*(x-8.25)*0.1;printf("数%d=%f\n",x,b[x]);}
aver=fun(b,y,ma,mi);
printf("最大的数为第%d个数(%f),最小的数为第%d个数(%f),平均值为%f",*ma,b[*ma],*mi,b[*mi],aver);
return 0;
}
double fun(double a[],int n,int*max,int*min)
{
int i;
double sum=0;
double max1=a[0],min1=a[0];
*max=0;
*min=0;
for(i=0;in;i++)
{
if(a[i]max1){*max=i;max1=a[i];}
if(a[i]min1){*min=i;min1=a[i];}
sum=sum+a[i];
}
printf("sum=%f,n=%d\n",sum,n);
return sum/n;
}
#include "iostream.h" //如果是C++ 就包含这个头文件,不是就删除此行
#include "stdio.h" //如果是C就包含这个头文件,不是就删除此行
double fun(int a[])
{
int i=0;
int max=0;
int min=0;
int sum=0;
for(;isizeof(a) bdsfid="123" 类 //型的大小 是数组的长度
{
if(maxa[i]) bdsfid="126" 记录下最大值 if(maxa[i]) min=a[i]; //记录下最小值
sum=sum+a[i]; //求和
}
sum=sum-max-min; //除掉最大值,最小值
return sum/(sizeof(a)/sizeof(int)-2); //返回 除掉最大最小值的平均值
}
void main(void)
{
int a[10];
int i=0;
for(;i10;i++)
{
scanf("%d",a[i]); //输入数组元素 是C语言就用这一行,不是就删掉
cina[i]; //输入数组元素 是C++语言就用这一行,不是就删掉
}
printf("%d\n",fun(a)); //输出结果 是C语言就用这一行,不是就删掉
coutfun(a)endl; bdsfid="143" 是c++语言就用这一行,不是就删掉 }
//不懂的可以问我 把你QQ给我,/fun(a)