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

满意答案

1.N是数组的最大的长度,但你输入的数组不一定就有100个。所以问题出在这里:

t=a[N];];/*a[n-1]才是数组的最后一个值,而不是a[N]*/

a[N]=max;

max=t;

2.scanf("%d",&n);/*n是要输入的,或者给定一个值。系统没有默认值,会出错*/

3.找最大数的函数太麻烦了

int maxh(int a[],int n,int i)

{int max=a[0];

for(i=0;i

if(a[i]>=max)

max=a[i]

}

4.但是你这个程序还有很大的问题,虽然这样子实现了交换,但是这样子不好输出。建议重新修改一下这个程序。追问: 能不能再进一步帮我改改昂?谢谢你!

追答:程序我修改了,也运行了。这只是一种方法,自己还可以再琢磨琢磨。

#include

#define N 100

int maxh(int a[],int n);/*i没有必要放在函数参数里面*/

void main()

{ int a[N];

int i,n,t,m;

printf("请输入数组元素个数");

scanf("%d",&n);/*输入n的个数,或者自己给定一个值,系统没有默认值,会出错*/

printf("请输入数组元素(各元素之间用enter键):");

for(i=0;i

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

t=maxh(a,n);

m=a[t];/*交换最大值和最后一个值*/

a[t]=a[n-1];/*a[n-1]才是数组的最后一个值,而不是a[N]*/

a[n-1]=m;

printf("交换后数组元素为:");/*辛辛苦苦的编程,没有输出岂不白忙了?*/

for(i=0;i

printf("%5d",a[i]);

}

int maxh(int a[],int n)/*只需返回最大值的下标就可以了*/

{int max=a[0],m=0,i;/*两个for循环是排序,查找只需要一个for循环就可以了。*/

for(i=0;i

if(a[i]>=max)

{ max=a[i];

m=i;

}

return m;

}

00分享举报

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值