|
|
发表于 2012-9-3 17:30:20
|
显示全部楼层
我改了一下,vc6运行,你可以看看。
#include <stdio.h>
void Delete_n_data(int data[], int data_len, int delete_n);
void Insert_sort(int *sort_data, int length);
int main()
{
int data[12] = {7, 4, 2, 6, 8, 3, 6, 1, 3, 9, 8, 4};
int delete_n = 5;
int i = 0;
for(i = 0 ; i < 12; i++) {
printf("%d ", data[i]);
}
printf("\n");
Delete_n_data(data, 12, delete_n);
for(i = 0 ; i < 12; i++) {
printf("%d ", data[i]);
}
printf("\n");
return 0;
}
void Delete_n_data(int data[], int data_len, int delete_n)
{
int tmp_data[256] = {0};
int i = 0;
int tmp_len = data_len - 1;
for(i = 0 ; i < data_len; i++) {
tmp_data[i] = data[i];
}
Insert_sort(tmp_data, data_len);
for(delete_n--; delete_n >= 0; delete_n--) {
while(tmp_len >= 0){
if(data[tmp_len] == tmp_data[delete_n]) {
data[tmp_len] = 0; //我将删除的数等于0
tmp_len = data_len - 1;
break;
} else {
tmp_len--;
}
}
}
}
void Insert_sort(int *sort_data, int length)
{
int i=0,j=0;
int tmpData = 0;
for(i = 1 ; i < length; i++) {
j=i;
tmpData= *(sort_data+i);
while(j > 0 && tmpData < sort_data[j-1]) {
sort_data[j] = sort_data[j-1];
j--;
}
sort_data[j] = tmpData;
}
} |
|