Ver Mensaje Individual
  #1 (permalink)  
Antiguo 18/09/2007, 09:05
pedro_cesar
 
Fecha de Ingreso: septiembre-2006
Mensajes: 328
Antigüedad: 18 años, 2 meses
Puntos: 3
como almacenar un int?

Bueno, tengo una asignacion de la universidad y tengo el codigo hecho pero me esta dando un error ==> "Segmentation fault (core dumped)" <== y CREO que el problema esta en la asignacion en el ciclo for, lo que quiero es saber que es lo que tiene mal y cual es la forma correcta de hacerlo, porque la verdad es que soy un tanto principiante en esto. El programa deberia recibir por la linea de comandos -o terminal- el numero del interruptor cuyo estado sea 1, donde 1 = abierto. Se asume que todos los interruptores estan cerrados si no se da ningun parametro y son 4 interruptores.

Código:
#include <stdio.h>
#include <stdlib.h>

int main (int argc, char *argv[]) { 

    int a[3], cont;
    int argcont=1;
    
    for (cont=0; cont< argc; cont++) {

        a[cont]= atoi(argv[argcont]);
        argcont++;
    }

    int S1=0, S2=0, S3=0, S4=0;

    if (a[0]==0 || a[1]==0 || a[2]==0 || a[3]==0) { printf("No existe el interruptor 0\n"); }
    if (a[0]==1 || a[1]==1 || a[2]==1 || a[3]==1) { S1=1; }
    if (a[0]==2 || a[1]==2 || a[2]==2 || a[3]==2) { S2=1; }
    if (a[0]==3 || a[1]==3 || a[2]==3 || a[3]==3) { S3=1; }
    if (a[0]==4 || a[1]==4 || a[2]==4 || a[3]==4) { S4=1; }
        

    printf("El estado de los interruptores es:\n");
    
    if (S1==1) { printf("\tS1:ON\n"); } else { printf("\tS1:OFF\n"); }
    if (S2==1) { printf("\tS2:ON\n"); } else { printf("\tS2:OFF\n"); }
    if (S3==1) { printf("\tS3:ON\n"); } else { printf("\tS3:OFF\n"); }
    if (S4==1) { printf("\tS4:ON\n"); } else { printf("\tS4:OFF\n"); }

    if ( (S1==1) && ( (S2==1) || (S3==1) || (S4==1) )) {
    
        printf("===>\t BOMBILLO: ON\t<===\n"); 
    } else {
        printf("===>\t BOMBILLO: OFF\t<===\n");
    }

    printf("En la ejecucion, se ha asumido que los switches estan cerrados a menos que su numero sea suministrado por la linea comando.\n");
    return 0;
}
Esta es la pagina donde esta toda la informacion del programa;
http://www.geocities.com/yoyirod/Web.../TareaL01.html

Tambien hay un ejecutable proporcionado por el profesor sobre como deberia de funcionar el programa: http://yoyirod.googlepages.com/demoTL01.exe -el ejecutable tambien esta en la pagina del programa-.