Error AYuda

Iniciado por wossy666, 3 Agosto 2011, 19:06 PM

0 Miembros y 1 Visitante están viendo este tema.

wossy666

Bueno me marca error En el void :/ , pero no se si estoy haciendo algo mal al insertar el programa, el error de void es en el programa quicksort


#include <conio.h>

void main(){
     char op='s';
     char a='a';
     char continuar='o';
     do{
          printf("**Bienvenido**\n");
          printf("1-Metodos De Ordenamiento\n");
          printf("2-Metodos De Busqueda\n");
          printf("3 -Salir\n");
          scanf("%c", &op);
          switch(op){ //este es el switch del menu principal
               case '1':
               printf("**Metodos De Ordenamiento**\n");
               printf("1- Burbuja\n");
               printf("2- Quiksort\n");
               scanf("%c", &a);
               switch(a){ //este es el switch de sub menu de ordenamiento.
                    case '1':
                    printf("Burbuja \n"); //aqui llamaria a la funcion burbuja.
                    break; //despues de cada case debe poner un break.

                    case '2':
                    printf("Quiksort \n"); //aqui llamaria a la funcion quilsort
                    break;

               } //aqui termina el switch del sub mmenu de ordenamiento.
               break; //aqui termina el case del MENU PRINCIPAL!

               case '2':
               printf("Busqueda. \n");
               //Aqui anida otro sqitch case.
               break;

               case '3':
               printf("Gracias... \n");
               continuar = 'S';
               break;

               default:
               printf("Opcion invalida\n");
               break;
          }
          system("pause");
          system("cls");
     }while(continuar != 's' && continuar != 'S');
}


Y el Quicksort

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

void swap(int *x,int *y)
{
   int temp;
   temp = *x;
   *x = *y;
   *y = temp;
}

int choose_pivot(int i,int j )
{
   return((i+j) /2);
}

void quicksort(int list[],int m,int n)
{
   int key,i,j,k;
   if( m < n)
   {
      k = choose_pivot(m,n);
      swap(&list[m],&list[k]);
      key = list[m];
      i = m+1;
      j = n;
      while(i <= j)
      {
         while((i <= n) && (list[i] <= key))
                i++;
         while((j >= m) && (list[j] > key))
                j--;
         if( i < j)
                swap(&list[i],&list[j]);
      }
  // swap two elements
      swap(&list[m],&list[j]);
  // recursively sort the lesser list
      quicksort(list,m,j-1);
      quicksort(list,j+1,n);
   }
}
void printlist(int list[],int n)
{
   int i;
   for(i=0;i<n;i++)
      printf("%d\t",list[i]);
}

void main()
{
   const int MAX_ELEMENTS = 10;
   int list[MAX_ELEMENTS];

   int i = 0;
   
   // generate random numbers and fill them to the list
   for(i = 0; i < MAX_ELEMENTS; i++ ){
   list[i] = rand();
   }
   printf("The list before sorting is:\n");
   printlist(list,MAX_ELEMENTS);
   
   // sort the list using quicksort
   quicksort(list,0,MAX_ELEMENTS-1);

   // print the result
   printf("The list after sorting using quicksort algorithm:\n");
   printlist(list,MAX_ELEMENTS);
}

leogtz

Cóloca el código entre las etiquetas, así es dificil de leer, para algo están las etiquetas de código.

Y te da error, porque es int main(), no void main() como incorrectamente se utiliza.
Código (perl) [Seleccionar]

(( 1 / 0 )) &> /dev/null || {
echo -e "stderrrrrrrrrrrrrrrrrrr";
}

http://leonardogtzr.wordpress.com/
leogutierrezramirez@gmail.com

El_Java

Haz caso y mete el codigo en las etiquetas GeSHi.
Ahi algo que no me entra en la cabeza, se puede saber como has declarado dos veces la función main? :S
Por cierto, quizas tu error es al declarar en los parametros de la funcion "int list[]", eso en C++ creo que es un error, en C no lo es.

Un saludo, y estudia.

wossy666

Tema cerrado xD :Dya encontre el error gracias :D