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

Bueno despues de mucho llorar al fin lo he terminado, habian 2 problemas, el primero es que el arreglo de a debe ser 4 en vez de 3 y el ciclo debe ejecutarse mientras cont < (argc-1) de manera que mi codigo final es asi:

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

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

    int a[4], cont=0, argcont=1;
    int S1=0, S2=0, S3=0, S4=0;
    
    if (argc> 5) { 
        printf("Solo teclee el nombre del programa seguido de no mas de 4 interruptores\n");
        return 1;
    }

    for (cont=0; cont< (argc-1); cont++) {

        a[cont]= atoi(argv[cont+1])
        
        if ( (a[cont]<= 0) || (a[cont]> 4) ) {
            printf("Uno de los interrruptores no existe\n"); 
            return 2; 
        }
    }

    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("===>\tBOMBILLO: OFF\t <===\n");
    }

    printf("\nEn la ejecucion, se ha asumido que los switches estan cerrados a menos que su numero sea suministrado por la terminal.\n");
    return 0;
}