Autor
|
Tema: Punto y coma (Leído 3,334 veces)
|
@synthesize
Wiki
Desconectado
Mensajes: 640
Another Brick in the Wall
|
Estudiando métodos de ordenación, em quedé en Radix. Ví el código de ejemplo que ponene en Wikipedia para implementar, hasta ahí todo bien Ví que en varias sentencias, ponían ; en una linea, siendo el único contenido de la misma. Pensaba que es un error, así que probé a compilar, pero funciona perfectamente. ¿Alguien me dice que hace ahí ese punto y coma? #include <math.h> #include <stdio.h> #include <stdlib.h> #define NUMELTS 20 void radixsort(int x[], int n) { int front[10], rear[10]; struct { int info; int next; } node[NUMELTS]; int exp, first , i , j , k , p , q , y ; /* Inicializar una lista vinculada */ for (i = 0; i < n-1; i++) { node[i].info = x[i]; node[i].next = i+1; } /* fin del for */ node[n-1].info = x[n-1]; node[n-1].next = -1; first = 0; /* first es la cabeza de la lista vinculada */ for (k = 1; k < 5; k++) { /* Suponer que tenemos números de cuatro dígitos */ for (i = 0; i < 10; i++) { /*Inicializar colas */ rear[i] = -1; front[i] = -1; } /*fin del for */ /* Procesar cada elemento en la lista */ while (first != -1) { p = first; first = node[first].next; y = node[p].info; /* Extraer el kâsimo dÁgito */ exp = pow(10, k -1); /* elevar 10 a la (k-1)ésima potencia */ /* Insertar y en queue[j] */ q = rear[j]; if (q == -1) front[j] = p; else node[q].next = p; rear[j] = p; } /*fin del while */ /* En este punto, cada registro está en su cola basándose en el dígito k Ahora formar una lista única de todos los elementos de la cola. Encontrar el primer elemento. */ for (j = 0; j < 10 && front[j] == -1; j++); ; first = front[j]; /* Vincular las colas restantes */ while (j <= 9) { /* Verificar si se ha terminado */ /*Encontrar el elemento siguiente */ for (i = j+1; i < 10 && front[i] == -1; i++); ; if (i <= 9) { p = i; node[rear[j]].next = front[i]; } /* fin del if */ j = i; } /* fin del while */ node[rear[p]].next = -1; } /* fin del for */ /* Copiar de regreso al archivo original */ for (i = 0; i < n; i++) { x[i] = node[first].info; first = node[first].next; } /*fin del for */ } /* fin de radixsort*/ int main(void) { int x[50] = {NULL}, i; static int n; printf("\nCadena de números enteros: \n"); for (n = 0;; n++) if (!scanf("%d", &x [n ])) break; if (n) radixsort (x, n); for (i = 0; i < n; i++) return 0; }
|
|
|
En línea
|
|
|
|
carlitos_jajajajaja
Desconectado
Mensajes: 30
|
cuando solo hay un punto y coma quiere decir sentencia vacia, o sea que literalmente ese punto y coma no hace nada
Supongo que es cuestion del estilo del codigo, lo hace para enfatizar - separar del resto del codigo los bucles terminados en punto y coma, seguramente como una forma de decir "Notese que este bucle no tiene ninguna otra sentencia asociada"
|
|
|
En línea
|
Merodeo los foros, esperando el momento de decir algo inteligente...
Se necesita paciencia
|
|
|
@synthesize
Wiki
Desconectado
Mensajes: 640
Another Brick in the Wall
|
En caso de ser eso que dices, es la técnica mas rara para enfatizar que he visto en mucho tiempo XD
|
|
|
En línea
|
|
|
|
nicolas_cof
Desconectado
Mensajes: 348
Into the Wild
|
Al margen de que a mi tambien me parece una tecnica muy oscura ( oscura = rara ), cabe mencionar que no afecta en nada el uso de sentencias vacias ( ; ). Salu10.
|
|
|
En línea
|
|
|
|
do-while
Desconectado
Mensajes: 1.276
¿Habra que sacarla de paseo?
|
Es lo que se ha comentado hasta ahora. La primera y unaica vez que he visto codigo de este estilo, fue algo diferente. Aqui realizan el for sin cuerpo poniendo un punto coma justo despues de la estructra de repeticion, y luego añaden fuera del cuerpo, pero indexada, una unica sentencia vacia. Yo normalmente utilizo la primera forma (el for sin cuerpo), pero en el que vi, dejaban el for como siempre y luego añadian en el cuerpo la sentencia vacia: for(... ; ... ; ...) ; /* aqui la sentencia vacia */
Para gustos hay colores... ¡Saludos!
|
|
« Última modificación: 9 Julio 2010, 10:27 am por do-while »
|
En línea
|
- Doctor, confundo los números y los colores. - Vaya marrón. - ¿Marrón? ¡Por el culo te la hinco!
|
|
|
|
Mensajes similares |
|
Asunto |
Iniciado por |
Respuestas |
Vistas |
Último mensaje |
|
|
Ayuda con la utilización del punto y coma
Foro Libre
|
Tokes
|
4
|
6,626
|
13 Diciembre 2011, 04:29 am
por Unbr0ken
|
|
|
Entero por coma flotante
Programación General
|
psycho248
|
4
|
2,532
|
15 Mayo 2014, 05:50 am
por psycho248
|
|
|
coma en division en c
Programación C/C++
|
lucas59
|
1
|
1,983
|
1 Octubre 2014, 07:59 am
por BlackM4ster
|
|
|
Cambiar coma por punto en un archivo .txt
« 1 2 »
Programación C/C++
|
fafafa01
|
17
|
10,966
|
17 Mayo 2016, 15:32 pm
por fafafa01
|
|
|
Poner coma en vez de un punto
.NET (C#, VB.NET, ASP)
|
Meta
|
2
|
3,114
|
4 Abril 2022, 07:14 am
por Meta
|
|