AHORA SOLO ME DA UN ERROR, CUAL ES?

MARIANO TAJOY
27 de Enero del 2005
#include <stdio.h>
#include <stdlib.h>
#include <conio.h>
#include <math.h>

void intercambio(int *,int *,int *, int*);
void main()

{

//Insertar 4 datos

int dato1, dato2, dato3, dato4;


printf("Insertar dato1 ");
scanf("%d", &dato1);

printf("Insertar dato2 ");
scanf("%d", &dato2);

printf("Insertar dato3 ");
scanf("%d", &dato3);

printf("Insertar dato4 ");
scanf("%d", &dato4);

int var1, var2, var3, var4;
var1=dato1;
var2=dato2;
var3=dato3;
var4=dato4;

scanf("C");

system("cls");

printf("4 variables var1= %d var2= %d var3= %d var4= %dn", var1, var2, var3, var4);

//InterKmbiar valores
int k;
for(k=1;k<=2;k++)
{
intercambio(&var2, &var3,&var1,&var4);
printf("var1= %d var2 = %d var3 = %d var4 = %dn",var1,var2,var3,var4);
}

}

void intercambio(int *x,int *y,int *r , int *p)
{
int k,l;
k=*x;
*x=*y;
*y=k;
l=*r;
*r=*p;
*p=l;
}

//Fin del interKmbio d valores

int resultado1, resultado2;

{

//MULTIPLICACION VAR1XVAR3

resultado1=var1*var3;
printf("el resultado1 es: %dn", resultado1);

//SUMA VAR2+VAR4

resultado2=var2+var4;
printf("el resultado2 es: %dn", resultado2);

int resultfin;
resultfin=resultado1+resultado2;
printf("el resultado final de la suma de resultado 1 y resultado 2 es: %dn", resultfin);

double raiz;
raiz=sqrt(resultfin);
printf("el resultado de la raiz del resultado final es: %fn", raiz);
}

carmamezo
27 de Enero del 2005
No entiendo por qué le das tantas vueltas a un problema tan sencillo (supongo que alguna razón tendrás):

void main()
{
int dato1,dato2,dato3,dato4,aux;

printf("nIntroduce 4 valores: ");
scanf("%d%d%d%d",&dato1,&dato2,&dato3,&dato4);
aux=dato1;
dato1=dato2;
dato2=aux;
aux=dato3;
dato3=dato4;
dato4=aux;
printf("nDatos intercambiados: %d %d %d %d",dato1,dato2,dato3,dato4);
}

O todavía más fácil, al hacer scanf() recoge los datos en el orden que quieras y así no tienes que intercambiarlos luego, o intercámbia el orden al hacer printf():

....
scanf("%d%d%d%d",dato2,dato1,dato4,dato3);
...
printf("%d%d%d%d",dato1,dato2,dato3,dato4);

o

...
scanf("%d%d%d%d",dato1,dato2,dato3,dato4);
...
printf("%d%d%d%d",dato2,dato1,dato4,dato3);

Un saludo.