一道C语言上机改错题

下列给定程序中,函数fun的功能是:求出数组中最大数和次最大数,并把最大数和a[0]中的数对调,次最大数和a[1]中的数对调。请改正程序中的错误,是它能得出正确的结果。试... 下列给定程序中,函数fun的功能是:求出数组中最大数和次最大数,并把最大数和a[0]中的数对调,次最大数和a[1]中的数对调。
请改正程序中的错误,是它能得出正确的结果。
试题程序:
#include <conio.h>
#include <stdio.h>
#define N 20
/***********************found*************************/
void fun (int *a,int n);
{
int I,m,t,k;
for(I=0;I<n;I++)
/**********************found**************************/
m=0;
for(k=I+1;k<n;k++)
if(a[k]>a[m])
m=k;
t=a[I];
a[I]=a[m];
a[m]=t;
}
}
main()
{
int b[N]={11,5,12,0,3,6,9,7,10,8};
int n=10,i;
for(i=0;i<n;i++)
print("%d",b[i]);
print("\n";
}

我第一处改出来了,把;去掉
可是第二处答案说把m=0;改成m=1;
为什么?
展开
 我来答
明慧又痛快丶桃花0B
2009-01-30 · TA获得超过405个赞
知道小有建树答主
回答量:432
采纳率:100%
帮助的人:391万
展开全部
#include <conio.h>
#include <stdio.h>
#define N 20
/***********************found*************************/
void fun (int *a,int n)
{
int I,m,t,k;
for(I=0;I<n;I++)
/**********************found**************************/
{m=0; //加括号
for(k=I+1;k<n;k++)
if(a[k]>a[m])
m=k;
t=a[I];
a[I]=a[m];
a[m]=t;
}
}
main()
{
int b[N]={11,5,12,0,3,6,9,7,10,8};
int n=10,i;
for(i=0;i<n;i++)
printf("%d",b[i]); //*************************printf
printf("\n"); //printf*************************)
}
rogood0000
2009-01-30 · TA获得超过1836个赞
知道大有可为答主
回答量:733
采纳率:100%
帮助的人:1109万
展开全部
因为题目要求是 次最大数和a[1]中的数对调啊 a[I]=a[0] a[m]=a[1]

for(I=0;I<n;I++)
{
m=1;
for(k=I+1;k<n;k++)
if(a[k]>a[m])
m=k;
t=a[I];
a[I]=a[m];
a[m]=t;
}
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

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

类别

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

说明

0/200

提交
取消

辅 助

模 式