问题描述
- ?为什么这不排序错了?
-
#includeint main(int argc, const char * argv[]) {
// insert code here...
int i,j;
int a[10];
int iTemp;
int iPos;
printf("为数组元素赋值: n");
/*从键盘为数组元素赋值*/
for (i=0; i<10; i++) {
printf("a[%d]=",i);
scanf("%d",&a[i]);
}
//从小到大排序
for (i=0; i<9;i++) {
iTemp=a[i];
iPos=i;
for (j=i+1; j<10; j++) {
if (a[j]<iTemp) {
iTemp=a[j];
iPos=j;
}/*交换两个元素*/
a[iPos]=a[i];
a[i]=iTemp;
}
}
//输出数组
for (i=0; i<10; i++) {
printf("%dt",a[i]);
if (i==4) {
printf("n");
}
}
return 0;
}
解决方案
//从小到大排序
for (i=0; i<9;i++) {
iTemp=a[i];
iPos=i;
for (j=i+1; j<10; j++) {
if (a[j]<iTemp) {
iTemp=a[j];
iPos=j;
}/*交换两个元素*/
a[iPos]=a[i];
a[i]=iTemp;
}
}
这段代码是错的,改改,改成下面
//从小到大排序
for (i=0; i<9;i++) {
for (j=i+1; j<10; j++) {
if (a[j]<a[i]) {
iTemp = a[i];
a[i]=a[j];
a[j]=iTemp;
}/*交换两个元素*/
}
}
解决方案二:
/*交换两个元素*/
这个不对
iTemp = a[iPos];
a[iPos]=a[i];
a[i]=iTemp;
解决方案三:
include没粘贴好。。。
解决方案五:
哈哈,下回还是买正版书吧!!好书就要买正版!!
解决方案六:
2006年12月日语二级证2007年12月日语二级证书2007年12月日语一级证书