我正在研究这个接收表的程序,然后用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");
}
}
}
答案 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");
}
}
}
结果:
现在您只需添加剩余的排序方法即可获得完整的结果: