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:
prograama completo
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:
Código (c) [Seleccionar]
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
Código (c) [Seleccionar]
/*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;
}