错误:排序void的参数太少了?

时间:2017-03-04 17:53:13

标签: c function sorting pointers void

我正在研究这个接收表的程序,然后用5种不同的方式对它进行排序(冒泡排序,快速排序,插入排序,选择排序,融合排序)但是当我的函数需要两个参数时它会给我上面的错误我已经喂它了。

#include<stdlib.h>

//fonction affichage//
void affichage( int *t,int n) 
{
   int i,j;
   for(i=0;i<n;i++){
      printf("%d",t[i]);
      printf("\n");
   }
}

//*fonction de tri//
void Trier_Selection(int* T, int n)
{          
   int c, d, pos, temp;
   c ==0;

   for ( c = 0 ; c < ( n - 1 ) ; c++ )
   {
       pos = c;

       for ( d = c + 1 ; d < n ; d++ )
       {
          if ( T[pos] > T[d] )
             pos = d;
       }

       if ( pos != c )
       {
          temp = T[c];
          T[c] = T[pos];
          T[pos]=temp;
       }
    }

    for(c=0;c<n;c++){
        printf("%d",T[c]);
        printf("\n");
    }
 }

 #include<stdio.h>
 #include<stdlib.h>
 main()
 {  
    int n,i,nb;
    int * t=malloc(n*sizeof(int));
    printf(" Donner la taille de votre tableau : ");
    scanf("%d",&n);

    //remplissage//
    for(i=0;i<n;i++){
       printf(" valeur de la case T[%d]:\n ",i);
       scanf("%d",&t[i]);}

       //affichage de tableau sans tri//
       printf("votre tableau initial :\n ,%d",affichage( int *t,int n);
       //switch case//
       // le menu//
       while (nb!= 0){
          printf("********************** Le Menu **********************")
          printf(" pour le type de tri, choisir svp:\n");
          printf(" -pour Le tri par sélection tapper 1:\n");
          printf(" -pour Le tri par insertion tapper 2:\n ");
          printf(" -pour Le tri à bulle, tapper 3:\n");
          printf(" -pour Le tri rapide,taper 4:\n ");
          printf(" -pour Le tri par fusion,tapper 5:\n");
          printf(" -pour quitter, tapper 0:\n");
          scanf("%d",&nb);
       }

       switch(nb){      
          case '1'
             Tri_select(int*t,int n);
             break;
         case '2'
             tri_insert(int*t,int n);
             break;
         case'3'
             tri_bubble(int*t,int n);
             break;
         case'4'
             tri_rap(int*t,int n);
             break;
         case'5'
             tri_fusion(int*t,int n);
             break ;

         default :
            printf(" Invalid request! Try again.\n");
      }         
   }
}

1 个答案:

答案 0 :(得分:0)

要使程序正常运行,必须进行一些更正:

这是一个适用于Trier_Select的版本 - &gt;案例1为开关

#include <stdio.h>
#include<stdlib.h>

//fonction affichage//
void affichage(int *t, int n)
{
    int i;
    printf("\n");
    for (i = 0; i<n; i++) {
        printf("%d", t[i]);
        printf(" ");
    }
}

//*fonction de tri//
void Trier_Select(int* T, int n)
{
    int c, d, pos, temp;

    c = 0;

    for (c = 0; c < (n - 1); c++)
    {
        pos = c;

        for (d = c + 1; d < n; d++)
        {
            if (T[pos] > T[d])
                pos = d;
        }

        if (pos != c)
        {
            temp = T[c];
            T[c] = T[pos];
            T[pos] = temp;
        }
    }


    printf("\nResultat du tri: ");
    for (c = 0; c<n; c++) {
        printf("%d", T[c]);
        printf(" ");
    }
    printf("\n");
}


void tri_insert(int* t, int n) {
    /* Add your code here for tri_insert*/
}

void tri_bubble(int* t, int n) {
    /* Add your code here for tri_bubble*/
}

void tri_rap(int* t, int n) {
    /* Add your code here for tri_rap*/
}

void tri_fusion(int* t, int n) {
    /* Add your code here for tri_fusion*/
}

int main(void)
{
    int n, i, nb=-1;

    printf(" Donner la taille de votre tableau : ");
    scanf("%d", &n);

    int * t = (int*)malloc(n * sizeof(int));


    //remplissage//
    for (i = 0; i<n; i++) {
        printf(" valeur de la case T[%d]: ", i);
        scanf("%d", &t[i]);
        printf("\n");
    }

    //affichage de tableau sans tri//
    printf("votre tableau initial :\n"); 
    affichage(t, n);
    //switch case//
    // le menu//
    while (nb != 0) {
        printf("\n");
        printf("********************** Le Menu **********************");
        printf(" pour le type de tri, choisir svp:\n");
        printf(" -pour Le tri par sélection tapper 1:\n");
        printf(" -pour Le tri par insertion tapper 2:\n ");
        printf(" -pour Le tri à bulle, tapper 3:\n");
        printf(" -pour Le tri rapide,taper 4:\n ");
        printf(" -pour Le tri par fusion,tapper 5:\n");
        printf(" -pour quitter, tapper 0:\n");
        printf("votre choix: ");
        scanf("%d", &nb);

        switch (nb) {
            case 1:
                Trier_Select(t, n);
                break;

            case 2:
                tri_insert(t, n);
                break;
            case 3:
                tri_bubble(t, n);
                break;
            case 4:
                tri_rap(t, n);
                break;
            case 5:
                tri_fusion(t, n);
                break;

            default:
                printf(" Invalid request! Try again.\n");
        }
    }
}

结果:

enter image description here

现在您只需添加剩余的排序方法即可获得完整的结果: