求大佬解决c语言问题啊

编写程序,用自定义函数对主函数中的数组求最小值最大值,最小值与首元素对换,最大值与尾元素对换,并把最小值最大值分别保存在主函数的2个变量中。... 编写程序,用自定义函数对主函数中的数组求最小值最大值,最小值与首元素对换,最大值与尾元素对换,并把最小值最大值分别保存在主函数的2个变量中。 展开
 我来答
DavidCai0316
2020-03-12 · TA获得超过973个赞
知道小有建树答主
回答量:311
采纳率:85%
帮助的人:104万
展开全部

测试代码

解题思路:

  1. 输入N个数给数组,再将数组传递给自定义函数进行处理。

  2. 在自定义函数中找出在数组中的最大值和最小值的下标,并分别保存在max和min变量中。

  3. 根据最大值和最小值所保存的数组元素下标,分别与数组的尾元素和首元素进行对换。

  4. 回到主函数,声明两个变量max和min分别保存数组的最大值和最小值。

  5. 输出对换后的数组、最大值和最小值。

注意事项:

  1. 你提出的问题并没有说明数据的类型,这里使用了常用的int类型,你可以进行修改。

  2. 数组的长度默认为10,如果要修改,可以把#define N 10中的10修改成你要的数字即可。

测试代码:

#include <stdio.h>

#define N 10 // 数组的长度 

void my_func(int a[])

{

    int max = 0, min = 0; // 最大值和最小值的初始下标位置 

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

    {

        if (a[i] > a[max]) max = i; // 保存最大值的下标 

        if (a[i] < a[min]) min = i; // 保存最小值的下标 

    }

    int t = a[N - 1]; a[N - 1] = a[max]; a[max] = t; // 最大值与尾元素对换

    t = a[0]; a[0] = a[min]; a[min] = t; // 最小值与首元素对换 

}

int main()

{

    int a[N];

    for (int i = 0; i < N; i++) scanf("%d", &a[i]); // 输入N个数 

    my_func(a);

    int max = a[N - 1], min = a[0]; // 保存最大值和最小值 

    for (int i = 0; i < N; i++) printf("%d ", a[i]); // 输出对换后的数组 

    printf("\n%d %d", max, min); // 输出最大值和最小值 

    return 0;

}

已赞过 已踩过<
你对这个回答的评价是?
评论 收起
匿名用户
2020-03-12
展开全部
#include "stdio.h"

void func(char su[],char length,char *max,char *min)
{
char i;
char temp;
char maxnum,minnum;

*max=su[0];
*min=su[0];

for(i = 0;i < length;i++)
{
if(*max<su[i])
{
*max=su[i];
maxnum=i;
}
if(*min>su[i])
{
*min=su[i];
minnum=i;
}
}
temp=su[length-1];
su[length-1]=*max;
su[maxnum]=temp;

temp=su[0];
su[0]=*min;
su[minnum]=temp;

}

void main()
{
char a[6]={5,6,8,3,2,7};
char max,min;
char i;

func(a,sizeof(a),&max,&min);
printf("max=%d,min=%d\n",max,min);
for(i=0;i<6;i++)
{
printf("%d ",a[i]);
}

}
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式