这个程序为什么不能使数组中的最大值和最小值互换?
这个程序为什么不能使数组中的最大值和最小值互换?main()
{
int a[5]={1,2,31,45,0};
int max,min,i,j,k=0;
max=min=a[0]
for(i=1;i<n;i++)
{ {if(a[i]>max){max=a[i];k=i;}
{if(a[i]<min){min=a[i];j=i;}
}
a[j]=min;
a[k]=max;
}
搜索更多相关的解决方案:
最大值
----------------解决方案--------------------------------------------------------
main()
{
int a[5]={1,2,31,45,0};
int max,min,i,j,k=0;
max=min=a[0]
for(i=1;i<n;i++)
{ {if(a[i]>max){max=a[i];k=i;}
{if(a[i]<min){min=a[i];j=i;}
}
a[k]=min;
a[j]=max;
}
这个程序为什么不能使数组中的最大值和最小值互换?
----------------解决方案--------------------------------------------------------
我看有两个原因,第一:i 应该从0开始循环,第二:你FOR循环里的N没定义
跟本不知道是什么数
----------------解决方案--------------------------------------------------------
int main(void)
{
int a[5]={1,2,31,45,0};
int max,min,i,j,k=0,n=5;
max=min=a[0]; /*错误一,漏了分号*/
for(i=1;i<n;i++)/*错误4,n未定义*/
{
if(a[i]>max){max=a[i];k=i;} /*错误2,{}使用错误*/
if(a[i]<min){min=a[i];j=i;} /*错误3,{}使用错误*/
}
a[k]=min;
a[j]=max;
/* 为了查看结果,如果需要可以去掉注释符
for(i=0;i<n;i++) printf("%d ",a[i]);
getch();
*/
return 0;
}
/*请注意程序书写格式*/
----------------解决方案--------------------------------------------------------
以下是引用yqiong在2007-8-2 0:09:51的发言:
这个程序为什么不能使数组中的最大值和最小值互换?
main()
{
int a[5]={1,2,31,45,0};
int max,min,i,j,k=0;
max=min=a[0];
for(i=0;i<5;i++)
{ if(a[i]>max){max=a[i];k=i;}
if(a[i]<min){min=a[i];j=i;}
}
a[k]=min;
a[j]=max;
}
真粗心!谢谢了 这个程序为什么不能使数组中的最大值和最小值互换?
main()
{
int a[5]={1,2,31,45,0};
int max,min,i,j,k=0;
max=min=a[0];
for(i=0;i<5;i++)
{ if(a[i]>max){max=a[i];k=i;}
if(a[i]<min){min=a[i];j=i;}
}
a[k]=min;
a[j]=max;
}
----------------解决方案--------------------------------------------------------
这个程序为什么不能使数组中的最大值和最小值互换?
main()
{
int a[5]={1,2,31,45,0};
int max,min,i,j,k;
max=min=a[0];
for(i=0;i<5;i++)
{ {if(a[i]>max){max=a[i];k=i;}
{if(a[i]<min){min=a[i];j=i;}
}
a[j]=min;
a[k]=max;
}
----------------解决方案--------------------------------------------------------
以下是引用卧龙孔明在2007-8-2 9:02:43的发言:
int main(void)
{
int a[5]={1,2,31,45,0};
int max,min,i,j,k=0,n=5;
max=min=a[0]; /*错误一,漏了分号*/
for(i=1;i<n;i++)/*错误4,n未定义*/
{
if(a[i]>max){max=a[i];k=i;} /*错误2,{}使用错误*/
if(a[i]<min){min=a[i];j=i;} /*错误3,{}使用错误*/
}
a[k]=min;
a[j]=max;
/* 为了查看结果,如果需要可以去掉注释符
for(i=0;i<n;i++) printf("%d ",a[i]);
getch();
*/
return 0;
}
/*请注意程序书写格式*/
int main(void)
{
int a[5]={1,2,31,45,0};
int max,min,i,j,k=0,n=5;
max=min=a[0]; /*错误一,漏了分号*/
for(i=1;i<n;i++)/*错误4,n未定义*/
{
if(a[i]>max){max=a[i];k=i;} /*错误2,{}使用错误*/
if(a[i]<min){min=a[i];j=i;} /*错误3,{}使用错误*/
}
a[k]=min;
a[j]=max;
/* 为了查看结果,如果需要可以去掉注释符
for(i=0;i<n;i++) printf("%d ",a[i]);
getch();
*/
return 0;
}
/*请注意程序书写格式*/
做改错题呢,我觉得改的好,是初学的应该注意的,我也学习了
----------------解决方案--------------------------------------------------------
回复:(lishizelibin)以下是引用卧龙孔明在2007-8-2...
错误2,3是为什么呢,难道这里的{}打的不对吗??应该是要有的呀
----------------解决方案--------------------------------------------------------
回复:(李天飞)我看有两个原因,第一:i 应该从0开始...
i 从1开始是对的,为什么要从0开始呢?? ----------------解决方案--------------------------------------------------------
main()
{
int a[5]={1,2,31,45,0};
int max,min,i,j,k=0;
max=min=a[0];
for(i=1;i<5;i++)
{ {if(a[i]>max){max=a[i];k=i;}
{if(a[i]<min){min=a[i];j=i;}
}
a[k]=min;
a[j]=max;
}
----------------解决方案--------------------------------------------------------