Foro de elhacker.net

Programación => Programación C/C++ => Mensaje iniciado por: dondaimon en 12 Diciembre 2017, 20:28 pm



Título: Por que no entra al ciclo for?
Publicado por: dondaimon en 12 Diciembre 2017, 20:28 pm
 :huh: :huh: :huh:
Estoy en un proyecto y necesito insertar una nueva fila en la matriz con los datos que pido pero no entra en lo que propongo.
El código de lo que trato de hacer es el siguiente:

Código:
#include<stdio.h>
#include<string.h>
#include<time.h>
#include<stdlib.h>
#include<wchar.h>
#include<locale.h>
#include<conio.h>

//porfavor no robes esto <3


main()
{
int num, c, cla[10000],F=10;
    srand (time(NULL));
    
    for(c=0;c<F;c++)
    {
        num= 1+rand()%(10000-1000);
         if (num<999)
         {
         num=num+(c*1000);
         }
        
         cla[c]=num;
    }
    
    
     int i=0,k=0,m=0,p=0,r=0,q=0;
char nombrecompleto[10][50];
char nombres[5][10]={"Alejandra","Eros","Juan","Rafael","David"};
char apellidop[5][15]={"Salas","Ramirez","Allighieri","Santana","Whinehouse"};
char apellidom[5][15]={"Muñoz","Nájera","Ortiz","Quiroz","Villanueva"};
srand(time(NULL));
//Generar los nombres aleatorios en base los nombre dados
for(c=0;c<F;c++)
{
k=0+rand()%(5);
m=0+rand()%(5);
p=0+rand()%(5);
sprintf(nombrecompleto[c],"%s %s %s",nombres[k],apellidop[m],apellidom[p]);
}
//Verificar que no hay nombres repetidos
for(r=0;r<F;r++)
{
        for(q=0;q<F;q++)
        {
            if(r!=q)
            {
                if(strcmp(nombrecompleto[r],nombrecompleto[q])==0)
                {
                   k=0+rand()%(5);
              m=0+rand()%(5);
                    p=0+rand()%(5);
                    sprintf(nombrecompleto[q],"%s %s %s",nombres[k],apellidop[m],apellidom[p]);
                }
            }    
        }
    }





float nim, sue[10000];
    srand (time(NULL));
    
    for(c=0; c<F;c++)
    {
        nim= 1+rand()%(10000-1000);
        if (nim<999)
         {
         nim=nim+(c*1000);
         }
       nim=(nim*3)/2;
        sue[c]=nim;
    }
for (c=0; c<F;c++)
{
printf("|%d|%s|%.2f|\n",cla[c],nombrecompleto[c],sue[c]);
}
//porfavor no robes esto <3

int add, plus, ex;
char anombre[15],aapellido[30],bapellido[30];
printf("\nDesea ingresar un nuevo usuario?, precione 1  ");
scanf("%d",&add);

for((ex)=1;(ex)>=2;(ex)++)
{
if (add==1)
{
F=F+1;
printf("\ningrese la nueva clave: ");
scanf("%d",&cla[F]);
printf("\ningrese el nombre del nuevo usuario : ");
scanf("\n%s",&anombre);
scanf("%s",&aapellido);
scanf("%s",&bapellido);
sprintf(nombrecompleto[F],"%s %s %s",anombre,aapellido,bapellido);
printf("\ningrese el nuevo sueldo: ");
scanf("%f",&sue[F]);

for (c=0; c<F;c++)
{
printf("|%d|%s|%.2f|\n",cla[c],nombrecompleto[c],sue[c]);
}

printf("\nDesea agregar otro usuario? precione 1  ");
scanf("%d",&plus);
if (plus==1)
{
(ex)=(ex)-1;
}
}
else if(add!=1)
{
(ex)=(ex)+add;
}
}
}


Título: Re: Por que no entra al ciclo for?
Publicado por: kuhi en 14 Diciembre 2017, 23:55 pm
Yo creo que el problema es el siguiente:

El bucle inicia un valor a 1.
Al estar poniendo la condición >=2, 1 < 2.

Según lo poco que recuerdo de C, los bucles se ejecutan mientras la condición sea TRUE, y en tu caso es FALSE.

Espero que te sirva de ayuda!  ;D