输入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]);
}
} 展开
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]);
}
} 展开
1个回答
展开全部
你这是把所有的 都放一个循环里面了。
应该是大括号位置错误。
其实可以更简单一些。
#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]);
}
这样试试。
应该是大括号位置错误。
其实可以更简单一些。
#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]);
}
这样试试。
来自:求助得到的回答
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询