Menú

Mostrar Mensajes

Esta sección te permite ver todos los mensajes escritos por este usuario. Ten en cuenta que sólo puedes ver los mensajes escritos en zonas a las que tienes acceso en este momento.

Mostrar Mensajes Menú

Temas - nilcosta

#1
Programación C/C++ / intercambio componentes vector
27 Noviembre 2016, 20:43 PM
buenas, estoy haciendo un ejercicio y no me sale del todo bien

creo que el error esta cuando hago el intercambio de las componentes del vector, parece que esta bien, pero al imprimir el vector, la primera componente no se cambia:

como hago el intercambio:

if(sumX>sumY){/*quan el sumatori del segon vecotr es menor que el del primer, fem un intercanvi*/
        for(i=0; i<n; i++){
            aux[i]=x[i];
            x[i]=y[i];
            y[i]=aux[i];
        }
    }


prograama completo

/*demana les components de dos vectors, comprova si son diferents, si son diferents els ordena segons la definició*/
#include <stdio.h>
#define DIM 10
int main (void){
    int n, x[DIM], y[DIM], aux[DIM], sumX=0, sumY=0, i, iguals=0;

    printf("n?\n");
    scanf("%d", &n);
    while(n>10){
        printf("n ha de ser menor o igual que 10\n");
        scanf("%d", &n);
    }
    printf("doneu les componens del vector X\n");
    for(i=0; i<n; i++){
        scanf("%d", &x[i]);
    }
    printf("doneu les componens del vector Y\n");
    for(i=0; i<n; i++){
        scanf("%d", &y[i]);
    }

    for(i=0; i<n; i++){/*mirem si els vecotors son iguals*/
        if(x[i]!=y[i]){
            iguals++;
        }
    }
    if(iguals==0){
        printf("els vecotrs son iguals\n");
        return 1;
    }

    for(i=0; i<n; i++){
        sumX+=x[i]*x[i];
        sumY+=y[i]*y[i];
    }

    if(sumX>sumY){/*quan el sumatori del segon vecotr es menor que el del primer, fem un intercanvi*/
        for(i=0; i<n; i++){
            aux[i]=x[i];
            x[i]=y[i];
            y[i]=aux[i];
        }
    }
   
    if(sumX<sumY){
        printf("Son dos vectors diferents i (");
        for(i=0; i<n-1; i++){
            printf("%d, ", x[i]);
        }
        printf("%d) << (", x[i]);
        for(i=0; i<n-1; i++){
            printf("%d, ", y[i]);
        }
        printf("%d)", y[i]);
    }

    if(sumX==sumY){/*en aquest cas el sumatori es igual*/
        for(i=0; i<n; i++){
            if(x[i]<y[i]){
                printf("Son dos vectors diferents i ");
                printf("(");
                for(i=0; i<n-1; i++){
                    printf("%d, ", x[i]);
                }
                printf("%d) << (", x[i]);
                for(i=0; i<n-1; i++){
                    printf("%d, ", y[i]);
                }
                printf("%d)", y[i]);
                return 1;
            }

            if(x[i]>y[i]){
                for(i=0; i<n; i++){
                aux[i]=x[i];
                x[i]=y[i];
                y[i]=aux[i];
                printf("Son dos vectors diferents i ");
                printf("(");
                for(i=0; i<n-1; i++){
                    printf("%d, ", x[i]);
                }
                printf("%d) << (", x[i]);
                for(i=0; i<n-1; i++){
                    printf("%d, ", y[i]);
                }
                printf("%d)", y[i]);
                return 1;
                }
            }
        }
    }
        return 0;
}
#2
Programación C/C++ / problema vectores c
27 Noviembre 2016, 03:33 AM
Buenas, me presento en el foro por primera vez, espero poder aportar y que me podáis ayudar. tengo un problema: hacer un programa que lee un entero n y una secuencia de n enteros y escribe los que están repetidos. he escrito el siguiente código pero no me funciona:
#include <stdio.h>
#define DIM 30
int main (void){
    int n, enters[DIM], i, j;
    printf("n?\n");
    scanf("%d", &n);
    printf("enters?\n");
    for(i=0; i<n; i++){
        scanf("%d", &enters[i]);
    }

    for(i=0; i<n; i++){
        for(j=1; j<=n; j++){
            if("enters[i]==enters[j]"){
                printf("%d\n", enters[i]);
            }
        }
    }
    return 0;
}