c语言关于数组的程序编写。。。在线等候!谢谢各位。。。

读入一组整数,编写函数将其中的最大值与最后一个元素交换。【下面是我自己做的,但运行不了,请求痛批!】#include<stdio.h>#defineN100intmaxh... 读入一组整数,编写函数将其中的最大值与最后一个元素交换。【下面是我自己做的,但运行不了,请求痛批!】
#include <stdio.h>
#define N 100
int maxh(int a[],int *n,int i);
void main()
{ int a[N],i,n,t,max;
printf("请输入一个数组:");
for(i=0;i<n;i++)
scanf("%d",&a[i]);
max=maxh(a,&n,i);
t=a[N];
a[N]=max;
max=t;
}
int maxh(int a[],int *n,int i)
{ int j,max;
for(i=0;i<*n-1;i++)
for(j=i+1;j<*n-i+1;j++)
{if(a[j]>a[i])
max=a[j];}
return max;
}
展开
 我来答
百度网友6c4d48956
2011-05-13 · 超过40用户采纳过TA的回答
知道小有建树答主
回答量:104
采纳率:0%
帮助的人:107万
展开全部
#include <stdio.h>

#define N 10

//求数组中最大值,返回最大值所在数组中的位置
int max_num(int *data, int size);

void main()
{
int data[N] = {0};
int Max = 0;
int i = 0;
//n记录最大值所在的数组位置
int n = 0;

for( i = 0; i < N; i++ )
{
scanf("%d", &data[i]);
}

n = max_num(data, N);

//如果数组中最大值不是数组最后一个数,则交换
if( n != N-1 )
{
int temp = 0;
temp = data[n];
data[n] = data[N-1];
data[N-1] = temp;
}

printf("Max num is %d\n", data[N-1]);

}

int max_num(int *data, int size)
{
int i = 0;
int maxnum = 0;
int n = 0;

maxnum = data[0];

for( i = 0; i < size; i++ )
{
if( maxnum < data[i] )
{
maxnum = data[i];
n = i;
}
}

return n;
}
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
wangle11111
2011-05-12 · TA获得超过161个赞
知道小有建树答主
回答量:136
采纳率:0%
帮助的人:133万
展开全部
你编写的函数不正确,这个函数就是返回数组的最大值就可以了。
#include <stdio.h>
#define N 100
int max(int a[],int n)
/*
a 数组,n表示数组大小
算法:擂台法
*/
{
int max;
max=a[0];
for(i=0;i<n;i++)
if(max<a[i])
max=a[i];
return max;
}

void main()
{ int a[N],i,n,t,max;
printf("请输入一个数组:");
for(i=0;i<n;i++)
scanf("%d",&a[i]);
max=max(a,n);
t=a[N-1];
a[N-1]=max;
max=t;
}
追问
运行不了(⊙o⊙)…………我想麻烦你帮我在我的基础上改改。。谢谢!
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
百度网友66ee332
2011-05-12 · TA获得超过562个赞
知道小有建树答主
回答量:406
采纳率:0%
帮助的人:489万
展开全部
这只是交换max与a[N]而已,你想做的是交换a[max]与a[N]
maxh 里面 max 没有初始化。加一行max = 0;
把maxh里面if (a[j]>a[i] ) max = a[j]; 换成 if ( a[j]>a[max] ) max = j;
main里面t=a[N]...max=t 改成 t = a[N]; a[N] = a[max]; a[max] = t;
本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
22...5@qq.com
2011-05-12 · 超过26用户采纳过TA的回答
知道答主
回答量:164
采纳率:0%
帮助的人:66.6万
展开全部
一个简单的问题被你搞这么复杂...
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(2)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

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

类别

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

说明

0/200

提交
取消

辅 助

模 式