问题描述
- C语言关于选择排序法的问题
-
#include"stdio.h"
#define?N?10
int?main()?
{
int?i,j,min,tem,a[N];?
for(i=0;i
????scanf("%d",&a[i]);
for(i=0;i
{
????min=i;?
????for(j=i+1;j
?????????if(a[min]>a[j])?
?????????min=j;?
????tem=a[i];?
????a[i]=a[min];?
????a[min]=tem;
?}?
?for(i=0;i<N;i++)?
printf("%5d",a[i]);
retuen?0;
?}?
代码用手机匆忙打的,可能有些错误,不要在意那些细节,我主要是想问一下把代码:
?????tem=a[i];?
????a[i]=a[min];?
????a[min]=tem;
修改成代码:
????tem=a[min];?
????a[min]=a[i];?
????a[i]=tem;
这样修改程序应该没错误吧?
至少在电脑上运行时结果与修改前是一样的。但是修改之后的代码提交到oj平台是错的,修改前的却正确的,最终结果一样,一对一错。而那段代码只不过是交换一下值,至于哪个先交换我觉得没什么影响。
求指点修改后那段代码放到整个程序中,应该没错吧?
解决方案
如果你实测的时候结果是相同的,提交之后除了问题,那就应该不是代码的问题,谁先交换没有区别,你仔细看看你提交的代码是不是正确代码。
解决方案二:
C语言中的选择排序
C语言选择排序
(c语言)选择排序法和冒泡排序法
解决方案三:
错了吧。看你的程序该交换 a[min]和a[j] 怎么成了和a[i]交换了?
if(a[min]>a[j])
min=j;
tem=a[i];
a[i]=a[min];
a[min]=tem;
}
时间: 2024-12-02 17:57:02