设计一个函数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