Ver Mensaje Individual
  #6 (permalink)  
Antiguo 05/12/2014, 08:50
Avatar de vangodp
vangodp
 
Fecha de Ingreso: octubre-2013
Mensajes: 934
Antigüedad: 10 años, 7 meses
Puntos: 38
Respuesta: Funciones en c

Es que debes tener en cuenta que un arreglo no se trata de una sola variable, si no de muchas.
¿Si haces arreglo[] == 0, a cual de ellas te refieres, arreglo[1], arreglo[2], arreglo[3] ??? Aun que una posicion estuviera a null te puedes llevar un disgusto con las demas.

La solucion seria mirar todas las posiciones de esta forma:
Código C:
Ver original
  1. #include <stdio.h>
  2. #include <stdlib.h>
  3.  
  4. int vacio( char *arreglo, const int TAM ){
  5.     int i;
  6.    
  7.     for ( i=0; i <TAM ; i++ ){
  8.         if ( arreglo[i] > '\0' ){
  9.             printf("Se encontro una letra en la posicion %d. Puede que contenga mas letras\n", i);
  10.             return 0;  //si arreglo contiene alguna letra
  11.         }
  12.     }
  13.     printf("Numero de caracteres mirados: %d \n", i);
  14.     return 1; //si esta vacio retorna 1
  15.  
  16. }
  17.  
  18. int main (){
  19.     char arreglo1[] = "No esta vacio";
  20.     char arreglo2[100] = ""; //vacio
  21.     char arreglo3[40] = {0};
  22.    
  23.     if ( vacio( arreglo1, ( (sizeof(arreglo1)) / ( sizeof(arreglo1[0]) ) ) ) ){
  24.         printf ("Arreglo1 esta vacio\n\n");
  25.     }else{
  26.         printf ("Arreglo1 contiene caracteres\n\n");
  27.     }
  28.  
  29.     if ( vacio( arreglo2, ( (sizeof(arreglo2)) / ( sizeof(arreglo2[0]) ) ) ) ){
  30.         printf ("Arreglo2 esta vacio\n\n");
  31.     }else{
  32.         printf ("Arreglo2 contiene caracteres\n\n");
  33.     }    
  34.  
  35.     if ( vacio( arreglo3, ( (sizeof(arreglo3)) / ( sizeof(arreglo3[0]) ) ) ) ){
  36.         printf ("Arreglo3 esta vacio\n\n");
  37.     }else{
  38.         printf ("Arreglo3 contiene caracteres\n\n");
  39.     }      
  40.    
  41.     getchar();
  42.     return 0;
  43. }

Pero lo ideal es hacer lo que te dijeron los compañeros. Mi idea es esta.
Código C:
Ver original
  1. #include <stdio.h>
  2. #include <stdlib.h>
  3. #include <locale.h>
  4.  
  5. void prueba(){
  6.     printf("Aqui te pediria nombre de alumnos para la primera seccion pero eso lo haces tu XD\n\n");
  7. }
  8.  
  9. int main () {
  10.     setlocale(LC_ALL, "spanish");
  11.     int nAlumnos;
  12.     int caso = 1;
  13.     int salir = 0;
  14.     int level2 = 0;
  15.     int nAlumnosSec1 = 0;
  16.     int nAlumnosSec2 = 0;
  17.     int nAlumnosSec3 = 0;
  18.     int nAlumnosSec4 = 0;
  19.     int sectorConfigurado1 = 0;
  20.     int sectorConfigurado2 = 0;    
  21.     int sectorConfigurado3 = 0;    
  22.     int sectorConfigurado4 = 0;    
  23.  
  24.     while ( !salir ) {
  25.         system("cls");
  26.         switch ( caso ) {
  27.             case 1:
  28.                 if ( sectorConfigurado1 != 1 ){
  29.                     printf( "Establezca la cantidad máxima de alumnos para la seccion 1 sección\n" );
  30.                     scanf( "%d", &nAlumnosSec1 );
  31.                     if ( nAlumnosSec1 != 0 ){
  32.                        sectorConfigurado1++;
  33.                     }
  34.                     break;
  35.                 }else if ( level2 == 1 ){
  36.                     printf( "1-Introducir alumno en la 1ºsección\n" );
  37.                     printf( "2-reporte 1º sección\n\n" );
  38.                     caso++;
  39.  
  40.                 }
  41.                
  42.             case 2:
  43.                 if ( sectorConfigurado2 != 1 ){
  44.                     printf( "Establezca la cantidad máxima de alumnos para la seccion 2 sección\n" );
  45.                     scanf( "%d", &nAlumnosSec2 );
  46.                     if ( nAlumnosSec2 != 0 ){
  47.                        sectorConfigurado2++;
  48.                     }
  49.                     break;
  50.                 }else if ( level2 == 1 ){
  51.                     printf( "3-Introducir alumno en la 2ºsección\n" );
  52.                     printf( "4-reporte 2º sección\n\n" );
  53.                     caso++;
  54.  
  55.                 }
  56.             case 3:
  57.                 if ( sectorConfigurado3 != 1 ){
  58.                     printf( "Establezca la cantidad máxima de alumnos para la seccion 3 sección\n" );
  59.                     scanf( "%d", &nAlumnosSec3 );
  60.                     if ( nAlumnosSec3 != 0 ){
  61.                        sectorConfigurado3++;
  62.                     }
  63.                     break;
  64.                 }else if ( level2 == 1 ){
  65.                     printf( "5-Introducir alumno en la 3ºsección\n" );
  66.                     printf( "6-reporte 3º sección\n\n" );
  67.                     caso++;
  68.  
  69.                 }
  70.             case 4:
  71.                 if ( sectorConfigurado4 != 1 ){
  72.                     printf( "Establezca la cantidad máxima de alumnos para la seccion 4 sección\n" );
  73.                     scanf( "%d", &nAlumnosSec4 );
  74.                     if ( nAlumnosSec4 != 0 ){
  75.                        sectorConfigurado4++;
  76.                        level2 = 1; // Nivel 2 de los menus activados
  77.                     }
  78.                     break;
  79.                 }else if ( level2 == 1 ){
  80.                     printf( "7-Introducir alumno en la 4ºsección\n" );
  81.                     printf( "8-reporte 4º sección\n\n" );
  82.                     printf( "0-Salir del programa\n\n" );
  83.                    
  84.                     scanf( "%d", &caso );
  85.                     if ( caso == 0 ) return 0;
  86.                     switch (caso) {
  87.                         system("cls");
  88.                         case 1:
  89.                             //introduce datos 1º seccion
  90.                             printf("Prueba entrada en caso 1\n");
  91.                             prueba();
  92.                             system("pause");
  93.                            
  94.                             break;
  95.                         case 2:
  96.                             //reporte 1º seccion
  97.                             //Hazlo tu y descubriras que te divertiras.... XDD
  98.                             break;
  99.                         case 3:
  100.                             //introduce datos 1º seccion
  101.                             //Hazlo tu y descubriras que te divertiras.... XDD
  102.                             break;
  103.                         case 4:
  104.                             //reporte 1º seccion
  105.                             //Hazlo tu y descubriras que te divertiras.... XDD
  106.                             break;
  107.                         case 5:
  108.                             //introduce datos 1º seccion
  109.                             //Hazlo tu y descubriras que te divertiras.... XDD
  110.                             break;
  111.                         case 6:
  112.                             //reporte 1º seccion
  113.                             //Hazlo tu y descubriras que te divertiras.... XDD
  114.                             break;
  115.                         case 7:
  116.                             //introduce datos 1º seccion
  117.                             //Hazlo tu y descubriras que te divertiras.... XDD
  118.                             break;
  119.                         case 8:
  120.                             //reporte 1º seccion
  121.                            //Hazlo tu y descubriras que te divertiras.... XDD
  122.                             break;
  123.                         default:
  124.                             break;
  125.                     }
  126.                    
  127.                    
  128.                     caso = 1;
  129.                     break;
  130.                 }
  131.             default:
  132.                 break;
  133.                
  134.         }
  135.         getchar();
  136.     }
  137.    
  138.     getchar();
  139.     return 0;
  140. }

Bueno espero que te sirva =)