Не работает сортировка, не вижу ошибку

sanek_sv

вот код программы для работы со списком, не работает сортировка вообще.
#include <iostream>
#include <stdlib.h>
#include <conio.h>
#include <stdio.h>
#include <malloc.h>
int n;
float cach;
int raz_m=0;
float vhNumber = 0;
float *sp=(float *)malloc(n*sizeof(float));
float *sp_cash=(float *)malloc(n*sizeof(float));
void*dob_vn(int razm,float el){
    for(int i=0;i<razm;i++){
        sp_cash[i]=sp[i];
    }
    for(int i=0;i<razm;i++){
        sp[i+1]=sp_cash[i];
    }
    sp[0]=el;
    raz_m+=1;
    }
void*dob_vk(int razm,float el){
    sp[razm]=el;
    raz_m+=1;
                }
void*del_con(){
    raz_m-=1;
                }
void*del_nach(int razm){
    for(int i=0;i<razm;i++){
        sp_cash[i]=sp[i];
    }
    for(int i;i<razm;i++){
        sp[i-1]=sp_cash[i];
        
    }
    raz_m-=1;
}
void*dob_poz(int poz,float el,int razm){
    if(poz>razm){
        printf("POSITION DOES NOT EXIST\n");
    }else{
        for(int i=0;i<razm;i++){
            if(poz == i+1) sp_cash[i]=el;
            else sp_cash[i]=sp[i];
        }
        for(int i=0;i<razm;i++){
            sp[i]=sp_cash[i];
        }
    }
    
}
void*del_poz(int poz,int razm){
    for(int i=0;i<razm;i++){
        sp_cash[i]=sp[i];
    }
    for(int i=poz;i<razm;i++){
        sp[i-1]=sp_cash[i];
    }
    raz_m-=1;
}       
void*vivod(int razm){
    for(int i=0;i<razm;i++){
           
        printf("%i. %.0f\n",i+1,sp[i]);
    }
    if(razm == 0){
        printf("LIST EMPTY\n");
    }
    
}
void*del_entry(float vhNum, int razm){ 
    for(int i=0;i<razm;i++){
        sp_cash[i]=sp[i];
    }       
    for(int i=0;i<razm;i++){
            if(vhNum == sp[i]){
                        for(int k=i+1,kk=0;k-1<razm;k++,kk++){
                            sp_cash[kk]=sp[k];
                        }
                        for(int k=i,kk=0;k<razm;k++,kk++){
                            sp[k]=sp_cash[kk];
                        }
                        raz_m-=1;
                        razm-=1;
                        i--;
            }else{
                        sp[i] = sp_cash[i];
            }
    }              
}
 
void*selectSort(int razm) 
{
   
    int tmp, i, j, pos;
     
    for(i = 1; i <= razm; ++i) // i - iiia? oaeouaai oaaa
    { 
        pos = i; 
        tmp = sp[i];
        for(j = i + 1; j <= razm; ++j) // oeee auai?a iaeiaiuoaai yeaiaioa
        {
            if (sp[j] < tmp) 
            {
                          
               pos = j; 
               tmp = sp[j]; 
            }
        }
    
    }
 
}
 
int main(){
    int code;
    int poz;
    int razm;
    int col;
 do{    
        
        int flaq;
          printf("1-ADD TO TOP\n2-REMOVE FROM TOP \n3-ADD TO POSITION\n4-REMOVE FROM POSITION\n5-ADD TO END\n6-REMOVE FROM END\n7-SHOW LIST\n8-REMOVE ALL ENTRY\n9-SORT \n>");
            scanf("%i", &flaq);
              system("cls");
 switch(flaq){
            case 1:printf("ENTER VALUE\n"); scanf("%f",&cach);dob_vn(raz_m,cach);printf("ENTER - Menu\nEsc - Exit");  code=getch();system("cls");break;
             case 2:del_nach(raz_m);printf("ENTER - Continue\nEsc - Exit");  code=getch();system("cls");break;
              case 3:printf("ENTER POSITION FOR ADD\n");scanf("%i",&poz);printf("Vvedite element\n");scanf("%f",&cach);dob_poz(poz,cach,raz_m);printf("ENTER - Continue\nEsc - Exit");  code=getch();system("cls");break;
               case 4:printf("ENTER POSITION FOR REMOVE\n");scanf("%i",&poz);del_poz(poz,raz_m);printf("ENTER - Continue\nEsc - Exit");  code=getch();system("cls");break;
                case 5:printf("ENTER VALUE\n"); scanf("%f",&cach);dob_vk(raz_m,cach);printf("ENTER - Continue\nEsc - Exit");  code=getch();system("cls");break; 
                 case 6:del_con();printf("ENTER - Continue\nEsc - Exit");  code=getch();system("cls");break;    
                  case 7:vivod(raz_m);printf("ENTER - Continue\nEsc - Exit");  code=getch();system("cls");break;    
                   case 8:printf("ENTER VALUE FOR SEARCH\n");scanf("%f",&vhNumber);del_entry(vhNumber,raz_m);printf("\nENTER - Continue\nEsc - Exit");  code=getch();system("cls");break;       
                    case 9: printf("SORT COMPLETE\n");selectSort(col);printf("\nENTER - Continue\nEsc - Exit");  code=getch();system("cls");break;
             }
        }while(code==13);   
}
помогите пожалуйста
1 ответ

sanek_sv

Вот ссылка, там правильно реализована данная сортировка Алгоритмы сортировок