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#include <stdio.h>
#include <stdlib.h>
int vacio( char *arreglo, const int TAM ){
int i;
for ( i=0; i <TAM ; i++ ){
if ( arreglo[i] > '\0' ){
printf("Se encontro una letra en la posicion %d. Puede que contenga mas letras\n", i
); return 0; //si arreglo contiene alguna letra
}
}
printf("Numero de caracteres mirados: %d \n", i
); return 1; //si esta vacio retorna 1
}
int main (){
char arreglo1[] = "No esta vacio";
char arreglo2[100] = ""; //vacio
char arreglo3[40] = {0};
if ( vacio( arreglo1, ( (sizeof(arreglo1)) / ( sizeof(arreglo1[0]) ) ) ) ){
printf ("Arreglo1 esta vacio\n\n"); }else{
printf ("Arreglo1 contiene caracteres\n\n"); }
if ( vacio( arreglo2, ( (sizeof(arreglo2)) / ( sizeof(arreglo2[0]) ) ) ) ){
printf ("Arreglo2 esta vacio\n\n"); }else{
printf ("Arreglo2 contiene caracteres\n\n"); }
if ( vacio( arreglo3, ( (sizeof(arreglo3)) / ( sizeof(arreglo3[0]) ) ) ) ){
printf ("Arreglo3 esta vacio\n\n"); }else{
printf ("Arreglo3 contiene caracteres\n\n"); }
return 0;
}
Pero lo ideal es hacer lo que te dijeron los compañeros. Mi idea es esta.
Código C:
Ver original#include <stdio.h>
#include <stdlib.h>
#include <locale.h>
void prueba(){
printf("Aqui te pediria nombre de alumnos para la primera seccion pero eso lo haces tu XD\n\n"); }
int main () {
int nAlumnos;
int caso = 1;
int salir = 0;
int level2 = 0;
int nAlumnosSec1 = 0;
int nAlumnosSec2 = 0;
int nAlumnosSec3 = 0;
int nAlumnosSec4 = 0;
int sectorConfigurado1 = 0;
int sectorConfigurado2 = 0;
int sectorConfigurado3 = 0;
int sectorConfigurado4 = 0;
while ( !salir ) {
switch ( caso ) {
case 1:
if ( sectorConfigurado1 != 1 ){
printf( "Establezca la cantidad máxima de alumnos para la seccion 1 sección\n" ); scanf( "%d", &nAlumnosSec1
); if ( nAlumnosSec1 != 0 ){
sectorConfigurado1++;
}
break;
}else if ( level2 == 1 ){
printf( "1-Introducir alumno en la 1ºsección\n" ); printf( "2-reporte 1º sección\n\n" ); caso++;
}
case 2:
if ( sectorConfigurado2 != 1 ){
printf( "Establezca la cantidad máxima de alumnos para la seccion 2 sección\n" ); scanf( "%d", &nAlumnosSec2
); if ( nAlumnosSec2 != 0 ){
sectorConfigurado2++;
}
break;
}else if ( level2 == 1 ){
printf( "3-Introducir alumno en la 2ºsección\n" ); printf( "4-reporte 2º sección\n\n" ); caso++;
}
case 3:
if ( sectorConfigurado3 != 1 ){
printf( "Establezca la cantidad máxima de alumnos para la seccion 3 sección\n" ); scanf( "%d", &nAlumnosSec3
); if ( nAlumnosSec3 != 0 ){
sectorConfigurado3++;
}
break;
}else if ( level2 == 1 ){
printf( "5-Introducir alumno en la 3ºsección\n" ); printf( "6-reporte 3º sección\n\n" ); caso++;
}
case 4:
if ( sectorConfigurado4 != 1 ){
printf( "Establezca la cantidad máxima de alumnos para la seccion 4 sección\n" ); scanf( "%d", &nAlumnosSec4
); if ( nAlumnosSec4 != 0 ){
sectorConfigurado4++;
level2 = 1; // Nivel 2 de los menus activados
}
break;
}else if ( level2 == 1 ){
printf( "7-Introducir alumno en la 4ºsección\n" ); printf( "8-reporte 4º sección\n\n" ); printf( "0-Salir del programa\n\n" );
if ( caso == 0 ) return 0;
switch (caso) {
case 1:
//introduce datos 1º seccion
printf("Prueba entrada en caso 1\n"); prueba();
break;
case 2:
//reporte 1º seccion
//Hazlo tu y descubriras que te divertiras.... XDD
break;
case 3:
//introduce datos 1º seccion
//Hazlo tu y descubriras que te divertiras.... XDD
break;
case 4:
//reporte 1º seccion
//Hazlo tu y descubriras que te divertiras.... XDD
break;
case 5:
//introduce datos 1º seccion
//Hazlo tu y descubriras que te divertiras.... XDD
break;
case 6:
//reporte 1º seccion
//Hazlo tu y descubriras que te divertiras.... XDD
break;
case 7:
//introduce datos 1º seccion
//Hazlo tu y descubriras que te divertiras.... XDD
break;
case 8:
//reporte 1º seccion
//Hazlo tu y descubriras que te divertiras.... XDD
break;
default:
break;
}
caso = 1;
break;
}
default:
break;
}
}
return 0;
}
Bueno espero que te sirva =)