C语言问题,定义一个函数fun指向一维数组使其从小到大输出。

C语言问题,定义一个函数fun指向一维数组使其从小到大输出。,第1张

void fun(int p1,int n)

{

int temp,j,k;

for(j=0;j<n-1;j++)

for(k=j+1;k<n;k++)

if((p1+j)>(p1+k))

{

temp=(p1+k);

(p1+k)=(p1+j);

(p1+j)=temp;

}

}

#include"stdioh"

#define  N 10

int findmax(floata,int n)

{

int temp = 0;

for (int i=1;i<n;i++)

{

if (a[temp]<a[i])

{

temp =i;

}

}

return temp;

}

int findmin(floata,int n)

{

int temp = 0;

for (int i=1;i<n;i++)

{

if (a[temp]>a[i])

{

temp =i;

}

}

return temp;

}

void fun()   //去掉最高分和最低分的函数

{

int i,k,f;

float a[N],sum = 0,avg = 0 ;

printf("请输入10个分数\n");

for(i=0;i<N;i++)

{

scanf("%f",&a[i]);

}

k = findmax(a,N);

f = findmin(a,N);

printf("去除最大值%f\n",a[k]);

printf("去除最小值%f\n",a[f]);

for(i=0;i<N;i++)

{

sum+=a[i];

}

sum-=(a[k]+a[f]);

avg = sum/(N-2);

printf("平均得分:%f\n",avg);

};

int main()

{

fun(); //调用的函数

return 0;

}

这里f1和f2是有初值的,就是当n==0,n==1时,f1=f2=1。 if(n==0||n==1) s=1;这个就相当于初始化了。然后就简单了,当n==2时,s=f1+f2=1+1=2;当n==3时s=2+1=3;当n==4时s=3+2=5;当n==5时s=5+3=8;当n==6时s=8+5=13 结果就是13 这个是递归算法。望采纳!

就是个自定义标识符,通常用作自定义函数的函数名,是函数function这个词的开头字母。

通常举例子的时候,不知道该叫什么名了,就取名fun或func或function。

前几年我回答过这种问题,结果题主采纳的是一帮胡扯答案的。这次我就看看还有没有睁眼说瞎话胡扯的。

函数的返回值与函数体里面定义的变量类型没有关系,而与你函数名称前面的类型有关,比如

void fun(){ } 这个函数的返回值类型为void,所以不需要return;

int fun(){ } 这个函数的返回值类型为int,所以需要return,并且return的时候需要返回一个整形。依次推理 可以得出

函数返回类型 函数名(形参) { 函数体 }

要不要return 由函数返回类型决定,如果为void就没有,为什么类型,则return返回什么类型。

欢迎分享,转载请注明来源:内存溢出

原文地址: https://outofmemory.cn/langs/12181214.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-21
下一篇 2023-05-21

发表评论

登录后才能评论

评论列表(0条)

保存