Por que no entra al ciclo for?

Iniciado por dondaimon, 12 Diciembre 2017, 20:28 PM

0 Miembros y 1 Visitante están viendo este tema.

dondaimon

 :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:

#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;
}
}
}

kuhi

#1
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
El conocimiento no ocupa lugar, somos libres de saber cuánto queramos...