c语言设计函数调用题

设计一个函数fun1,用于对输入的整型数组a找出最大值,并把数组中这个最大值修改为-1,然后返回这个最大值所在的下标。 然后,在主函数事先定义一个数组并储存如下数据:(56, 34, 87, 25, 13, 9);最后,想办法把这个数组按从大到小的顺序显示出来(也就是要显示87  56  34  25  13  9)。有大神会做吗?c语言的!

你这个主函数的要求和fun1函数有啥关系啊?

#include <stdio.h>
#include <stdlib.h>
int n=0;
int xiabiao(int a[]){
    int i,max=-100,t=0;
    for (i=0;i<=n;i++){
        if((a[i])>max){
            t=i;
            max=a[i];
        }
    }
    return t;
}
int main()
{
    int a[50]={0},i,j,temp;
    int b[6]={56, 34, 87, 25, 13, 9};
    printf("%s","请个输入整型数组元素(输入0表示输入结束):\n");
    for(j=0;j<50;j++){
        scanf("%d", &a[j]);
        n++;
        if (a[j] == 0)
        break;
    }
    printf("%d",xiabiao(a));
    printf("\n");
    for(j=0;j<5;j++) {
        for(i=0;i<5-j-1;i++) {
            if(b[i]<b[i+1]) {
                temp = b[i];
                b[i] = b[i+1];
                b[i+1] = temp;
            }
        }
    }
    for(j=0;j<=5;j++) {
        printf("%d ",b[j]);
    }
    return 0;
}

如果有帮助请点一下我回答右上方的采纳,谢谢!以后有什么问题可以互相交流。

int fun1(int a[],int n)
{
	int max = 0;
	for(int i=1;i<n;i++)
	{
		if(a[i] > a[max])
			max = i;
	}
	a[max] = -1;
	return max;
}

void paixu(int a[],int n)
{
	int i,j,t;
	for(i=0;i<n;i++)
		for(j=0;j<n-i;j++)
			if(a[j] < a[j+1])
			{
				t=a[j]; 
               a[j]=a[j+1]; 
               a[j+1]=t; 
			}
}


int main()
{
	int a[6] = {56, 34, 87, 25, 13, 9};
	paixu(a,6);
	int i=0;
	for(i=0;i<6;i++)
		printf("%d ",a[i]);
	return 0;
}

 

啊这 首先一个for循环遍历找到最大值 开个变量记录此时位置 再把值改成-1 最后再弄个函数两层for循环 类似冒泡 新手都是这么过来的 更简单的排序 c++一个sort搞定了希望对你有帮助 能采纳哦 不会不会的题欢迎私聊我更快解决哦

您好,我是有问必答小助手,您的问题已经有小伙伴解答了,您看下是否解决,可以追评进行沟通哦~

如果有您比较满意的答案 / 帮您提供解决思路的答案,可以点击【采纳】按钮,给回答的小伙伴一些鼓励哦~~

ps:问答VIP仅需29元,即可享受5次/月 有问必答服务,了解详情>>>https://vip.csdn.net/askvip?utm_source=1146287632