Dev - C++ - Programa Piramide en C

   
Vista:

Programa Piramide en C

Publicado por Franklin Nin (1 intervención) el 10/05/2010 20:38:19
Saludos. Muy buenas. Tengo un codigo en C que crea una piramide de numeros de la siguiente manera
1
232
34543
456543
5678765
etc......
El codigo es el siguiente
#include <stdio.h>
#include <stdlib.h>

int main(){
int x,o;
for(x=1;x<11;++x){
/* Aqui es el espaciado */
printf("%*c", 20-x, ' ');

for(o=1;o<=x;++o)
printf("%d%s",(x+o-1)%10, (x-1)?"":"\n");
for(o=o+x-3;o>=x;--o)
printf("%d%s", o%10, (x-o)?"":"\n");
}
printf("\n");
system("pause");
return 0 ;

Parece que el codigo esta un poco ofuscado. Mi inquietud es la siguiente, hay parte del codigo que no entiendo que es lo que hace por ejemplo (x-1)?"":"\n");---Tengo entendido que ?: se usa para condicion, pero ahi no veo la condicion osea "if (x-1) printf "" ....no le veo sentido. lo que quiero es entender esta parte de codigo y que este codigo se entienda mejor porque trate mucho en entender el codigo, pues parece que esta simplificado. Gracias de antemano.
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:Programa Piramide en C

Publicado por Yamil Bracho (6 intervenciones) el 10/05/2010 22:20:05
En C/C++ cuando coloca if (1) Estas comparanado el valor con cero o false...
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

RE:Programa Piramide en C

Publicado por Capitan Kirk (44 intervenciones) el 11/05/2010 08:23:29
Eso se denomina operador condicional. Funciona de este modo:

expresion_1 ? expresion_2 : expresion_3

Se evalúa expresion_1. Si es cierta, se devuelve expresion_2. Si es falsa, se devuelve expresion_3. Por ejemplo: Para obtener el mínimo de dos números:

min = (A < B) ? A : B;

Si A es menor que B, min valdrá A. En caso contrario, min valdrá B.

En tu caso, tenemos:

(x-1) ? "" : "\n"

Entonces, se evalúa x-1. Si el resultado es cero (es decir, x es igual a 1) se devuelve la cadena vacía. Si el resultado es distinto de cero (x es distinto de 1), se devuelve '\n' (avance de línea). Este valor devuelto (que es una cadena de caracteres) es el que se imprime en el printf donde está situado.

Saludos,
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

RE:Programa Piramide en C

Publicado por Edgark (1 intervención) el 19/11/2011 00:02:46
Disculpa necesito este programa pero con bucles anidados ! como le hago
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