Foro de elhacker.net

Programación => Programación C/C++ => Mensaje iniciado por: sysax en 11 Abril 2013, 19:09 pm



Título: ayuda error en programa c
Publicado por: sysax en 11 Abril 2013, 19:09 pm
hola gente

se me esta presentando este error y no se que es

Código:
funcionTest.c:27:6: error: tipos en conflicto para ‘intercambio’
funcionTest.c:2:6: nota: la declaración previa de ‘intercambio’ estaba aquí
funcionTest.c:36:6: error: tipos en conflicto para ‘imprimir’
funcionTest.c:3:6: nota: la declaración previa de ‘imprimir’ estaba aquí

este el el codigo del programa
Código:
#include<stdio.h>
void intercambio(int mitad, int vectorUno, int vectorDos);
void imprimir(int mitad, int vectorUno, int vectorDos);

int main(){
int i,num,mitad;
int mit,vUno,vDos;
printf("ingrese el tamaño del vector : ");
scanf("%d",&num);

mitad=num/2;
int vectorNumeros[num];
int vectorUno[mitad];
int vectorDos[mitad];

for(i=0; i<num; i++){
    vectorNumeros[i]=i+1;
}
for(i=0; i<mitad; i++){
    vectorUno[i]=vectorNumeros[i];
    vectorDos[i]=vectorNumeros[i+mitad] ;
}
intercambio(mitad,  vectorUno[mitad], vectorDos[mitad]);
imprimir( mitad,  vectorUno[mitad],  vectorDos[mitad]);
printf("\n");
}
void intercambio(int mitad, int vectorUno[mitad], int vectorDos[mitad]){
int i,auxUno,auxDos;
     for(i=0; i<mitad; i++){
        auxUno=vectorUno[i];
        auxDos=vectorDos[i];
        vectorUno[i]=auxUno;
        vectorDos[i]=auxDos;
     }
}
void imprimir(int mitad, int vectorUno[mitad], int vectorDos[mitad]){
int i;
    for(i=0; i<mitad; i++){
       printf("[%d",vectorUno[i]);
       printf("] vs [");
       printf("%d]",vectorDos[i]);
       printf("\n");
    }

gracias a todos los que puedan ayudar


Título: Re: ayuda error en programa c
Publicado por: Carloswaldo en 11 Abril 2013, 19:47 pm
Tu problema es que primero estas declarando la función como void intercambio(int mitad, int vectorUno, int vectorDos), y luego quieres hacer void intercambio(int mitad, int vectorUno[mitad], int vectorDos[mitad]), que por cierto C no va a saber qué es "mitad" en ese punto del código, la función tiene que ser (int, int, int), igual con la otra función.