这个代码到底哪里出错了……求解。
程序代码:
//paixu_1.c -- 插入排序法程式 #include <stdio.h> #define MAXAMOUNT 100 int main(void) { int i, k; int current; int class[MAXAMOUNT]; int amount; scanf("%d", &amount); //输入需要排序的个数 for ( i=0; i<amount; i++) { scanf("%d", &class[i]); } for ( i=1; i<amount; i++) { current = class[i]; } for ( k=i-1; k>=0; k--) { if ( current>class[k] ) { class[k+1] = class[k]; } else break; //必须跳出来 class [k+1] = class[k]; } printf("\n"); for ( i=0; i<amount; i++) { printf("%d\t", class[i]); } return 0; }
如果有一班学生欲按高矮顺序排成一排, 设第1 位至第i-1 位学生都已经排好了, 欲排第i 位, 我们可由第i-1 位开始比起, 如果比第i-1 位高, 则与第i-1 位对调, 再往前比。 否则排下一位学生, 即第i+1 学生。
搞不懂程序哪里出错了……