C/Visual C - Novato!!!

 
Vista:

Novato!!!

Publicado por Dunia NP (2 intervenciones) el 30/01/2006 01:53:00
Hola, estaba tratando de hacer un programa que haga la suma d cuadrados el codigo es el siguiente:

#include<stdio.h>

main()

{
int Limite;
int x;
int y;
int z;

printf("¿Hasta que numero decea sabe?\n");
scanf("%d",&Limite);

for(x=1; x<=Limite; x++)

for(y=1; y<=Limite; y++)

for(z=1; z<=Limite; z++)


if(z*z==x*x+y*y)

printf("%d^2=%d^2+%d^2\n",z,x,y);

getch();
}

El problema es que al imprimir sle lo siguiente:

5^2=3^2+4^2
5^2=4^2+3^2

osea que hace lo q debe hacer, y no c como evitar que se repita, supongo q es xq primero hace un ciclo y luego el otro...
pero la verdad todavia no c mucho..
ojala alguien m pueda ayudar...
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder

RE:Novato!!!

Publicado por Jesus Oliver (166 intervenciones) el 01/02/2006 11:12:22
Un problema más funcional que técnico.
La suma es una operacion conmutativa, asi que obviamente ambos valores son validos.
Para evitar la repeticion, la solución es sencilla, simplemente inicia,por ejemplo, y a x+1 :-)
for (x=1;x<=Limite;x++)
for(y=x+1;y<=Limite;y++) //asi estableces que y>x ya que x no puede ser igual a y
for(z=y+1;z<=Limite;z++) // si te das cuenta z debe ser >x y >y
if (z*z=x*x+y*y) printf...

Y procura tabular!
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar