Buenas! Vengo a pediros otro favor... (lo siento por daros el coñazo de nuevo
)
Estube leyendo los docs que me disteis para "intentar" mejorar la identación (¿se dice así?) e intento hacer todo lo que puedo para que siga los standares.
La cosa, tengo otro pequeño programa, os pido si me hicieseis el favor que me revisaseis la identación del programa y me dijeseis los fallos que tengo (no encuanto al código, sino a la forma de escribirlo).
Os pego el código:
/*
*
* Se generan 5 numeros no repetidos mas
* 2 estrellas (no repetidas).
* Los numeros van del 1 al 50 y las
* estrellas del 1 al nueve.
*
*/
#include <stdio.h> /* librerias in out */
#include <stdlib.h> /* librerias estandar */
#include <time.h> /* librerias para el control del tiempo */
#define NUM 5 /* definimos la cantidad de numeros */
#define EST 2 /* definimos la cantidad de estrellas */
#define RG_NUM 49 /* definimos el rango de los numeros, del 1 al 50 */
#define RG_EST 8 /* definimos el rango de las estrellas, del 1 al 9 */
/* NOTA: Utilizamos en los rangos el valor menos uno, ya que
* despues tendremos que sumarle 1 ya que empiezan desde 0
*/
/* Declaracion de los tipos de funciones */
int generarNumero(int, int, int *);
void ordenaBurbuja(int *, int);
void muestraLista(int *, int);
/* Declaracion de la funcion principal */
int main (void){
int numeros[NUM],
estrella[EST],
sw = 0,
i,
k;
srand(time(0)); /* Iniciamos el rand */
/* Generamos los 5 primeros numeros */
for ( i = 0 ; i < NUM ; i++ ){
numeros[NUM] = generarNumero(i, RG_NUM, numeros);
}
ordenaBurbuja(numeros, NUM);
for ( i = 0 ; i < EST ; i++ ){
estrella[i] = generarNumero(i, RG_EST, estrella);
}
ordenaBurbuja(estrella, EST);
system("clear");
printf("Programa del Euromillon\n");
printf("=======================\n\n");
printf("Los numeros son:\t");
muestraLista(numeros, NUM);
printf("\nLas estrellas son:\t");
muestraLista(estrella, EST);
printf("\n\nPulse intro para SALIR....");
getchar();
system("clear");
return 0;
}
/* Declaracion de los cuerpos de las funciones */
/*
*
* generarNumero: Creara un numero en funcion de
* un rango pasado (valor).
* Como le pasamos una lista, comprobara si es el
* primer indice, y si lo es comprobara que no
* se repita ningun numero.
*
*/
int generarNumero (int indice, int valor, int *lista){
int k = 0,
iguales = 0,
sw = 0;
do{
iguales = 0;
lista[indice] = rand() % valor + 1;
if (indice){
puts("flag");
for( k = 0 ; k < indice ; k++ )
if (lista[k] == lista[indice])
iguales = 1;
}
}while (iguales);
return lista[indice];
}
/*
*
* ordenaBurbuja: El algoritmo de ordenacion
* por burbuja implementado en esta funcion.
* Ordenara haciendo "subir" como las burbujas
* los valores que posea una lista.
*
*/
void ordenaBurbuja(int *la, int diml) {
long pasadas, k;
int aux;
int cambio;
pasadas = 1;
cambio = 1;
while (cambio && pasadas <= diml-1)
{ cambio = 0;
for (k = 0; k <= diml-1 - pasadas; k++)
if (la[k] > la[k+1]){
aux = la[k];
la[k] = la[k+1];
la[k+1] = aux;
cambio = 1;
}
pasadas++;
}
}
/*
*
* muestraLista: Funcion que mostrara
* los valores de una lista que se ha
* pasado a la funcion como argumento.
*
*/
void muestraLista(int *lista, int i){
int j;
for ( j = 0 ; j < i ; j++ )
printf("%d\t", lista[j]);
}
Tengo algunas duda que os agradecería mucho que me las contestaseís. Son:
Las funciones, ¿se debe separar el nombre de la función de la apertura de los parentesis?
La otra es sobre los comentarios. ¿Es correcto introducir un comentario en medio de una orden, como dentro de un for? (por ejemplo for ( i = x /* comentario */ ; .... ; ... ) )
Muchas gracias por perder el tiempo corrigiendo mis fallos
Salu2 y gracias!