输入n个数到数组,选出最大最小得数,并分别将他们与a[0],a[n-1]互换,求指点哪错了

#include<stdio.h>intmain(){inta[500];inti,n,t,b;int*j,*k;scanf("%d",&n);j=a;for(i=0;i... #include<stdio.h>
int main(){
int a[500];
int i,n,t,b;
int *j,*k;
scanf("%d",&n);
j=a;
for(i=0;i<n;i++)
{
scanf("%d",&a[i]);
if(*j<a[i])
j=&a[i];
k=a;
for(i=0;i<n;i++)
if(*k>a[i])
k=&a[i];

t=a[0];
a[0]=*j;
*j=t;
b=a[n-1];
a[n-1]=*k;
*k=b;
for(i=0;i<n;i++)
printf("%d",a[i]);

}

}
展开
 我来答
风若远去何人留
2017-01-10 · 知道合伙人互联网行家
风若远去何人留
知道合伙人互联网行家
采纳数:20412 获赞数:450108
专业C/C++软件开发

向TA提问 私信TA
展开全部
你这是把所有的 都放一个循环里面了。
应该是大括号位置错误。
其实可以更简单一些。

#include<stdio.h>
int main(){
int a[500];
int i,n,t,b;
int *j,*k;
scanf("%d",&n);
k=j=a;
for(i=0;i<n;i++)
{
scanf("%d",&a[i]);
if(*j<a[i])
j=&a[i];
if(*k>a[i])
k=&a[i];
}
t=a[0];
a[0]=*j;
*j=t;
b=a[n-1];
a[n-1]=*k;
*k=b;
for(i=0;i<n;i++)
printf("%d",a[i]);
}

这样试试。
来自:求助得到的回答
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

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

类别

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

说明

0/200

提交
取消

辅 助

模 式