Foros del Web » Programación para mayores de 30 ;) » C/C++ »

Necesito ayuda

Estas en el tema de Necesito ayuda en el foro de C/C++ en Foros del Web. Buenas noches...disculpen pero me estan pidiendo q no se me repita la cedula de identidad y es un string pero realmente no se como hacer ...
  #1 (permalink)  
Antiguo 14/11/2010, 21:48
 
Fecha de Ingreso: noviembre-2010
Mensajes: 2
Antigüedad: 13 años, 5 meses
Puntos: 0
Información Necesito ayuda

Buenas noches...disculpen pero me estan pidiendo q no se me repita la cedula de identidad y es un string pero realmente no se como hacer para q no se repita aqui esta el codigo fuente x favor aprecisaria su ayuda

#include<stdio.h>
#include<string.h>
#include<stdlib.h>
main(){
int n,nfilas=100,i,aser,k;
float ht,b1,b2,b3,d1,d2,a1,a2,aux2,may;
float vsb[nfilas],vsn[nfilas];
char pausa;
char ci[nfilas][9],nom[nfilas][15],gi,ge,aux1[15];
n=i=aser=k=0;
ht=b1=b2=b3=d1=d2=a1=a2=aux2=may=0.0;
pausa=' ';
strcpy(ci[0],"");
strcpy(nom[0],"");
strcpy(aux1,"");
fflush(stdin);
do{
printf("\nIng. total de empleados ");
scanf("%d",&n);
}while(!(n>=0&&n<=nfilas));
n=n-1;
for(i=0;i<=n;i++){
printf("\nDatos del empleado--->%d de %d",i+1,n+1);
do{
printf("\n Ingrese Nro. de cedula ");
scanf("%s",ci[i]);
}while(strcmp(ci[i],"\0")==0);
do{
printf("\n Nombre ");
scanf("%s",nom[i]);
}while(strcmp(nom[i],"\0")==0);
do{
printf("\n ing horas trabajadas ");
scanf("%f",&ht);
}while(!(ht>=1.0&&ht<=25.0));
do{
printf("\n ingrese grado de instruccion a/b/c ");
getchar();
gi=getchar();
}while(!(gi=='a'||gi=='b'||gi=='c'));
do{
printf("\n Ingrese Genero f/m ");
getchar();
ge=getchar();
}while(!(ge=='f'||ge=='m'));
do{
printf("\n años de servivio ");
scanf("%d",&aser);
}while(aser<0);
switch(gi){
case'a':vsb[i]=4000.0*ht;
b1=vsb[i]*0.03;
d1=vsb[i]*0.04;
break;
case'b':vsb[i]=6000.0*ht;
b1=vsb[i]*0.06;
d1=vsb[i]*0.07;
break;
case'c':vsb[i]=8000.0*ht;
b1=vsb[i]*0.09;
d1=vsb[i]*0.12;
break;
}
switch(ge){
case'f':b2=vsb[i]*0.08;
d2=vsb[i]*0.06;
break;
case'm':b2=vsb[i]*0.04;
d2=vsb[i]*0.02;
break;
}
if(aser=0&&ge=='f'){
b3=vsb[i]*0.03;
}else{
if(aser=1&&ge=='f'){
b3=vsb[i]*0.07;
}else{
if(aser=2&&ge=='f'){
b3=vsb[i]*0.1;
}else{
b3=vsb[i]*15;
}
}
}
vsn[i]=vsb[i]+b1+b2+b3-d1-d2;
a1=a1+vsb[i];
a2=a2+vsn[i];
}
for(i=0;i<=n-1;i++){
for(k=i+1;k<=n;k++){
if (strcmp(ci[k],ci[i])){
strcpy(aux1,ci[k]);
strcpy(ci[k],ci[i]);
strcpy(ci[i],aux1);
strcpy(aux1,nom[k]);
strcpy(nom[k],nom[i]);
strcpy(nom[i],aux1);
aux2=vsb[k];
vsb[k]=vsb[i];
vsb[i]=aux2;
aux2=vsn[k];
vsn[k]=vsn[i];
vsn[i]=aux2;
}
}
}
k=0;
may=vsn[0];
for(i=1;i<=n;i++){
if(gi=='a'&&vsn[i]>may){
may=vsn[i];
k=i;
}
}
fflush(stdin);
printf("\n\t\t\t *****Reporte****");
printf("\n Nro. \t C.I \t Nombre \t Grado \t Sueldo Base \t Sueldo Neto");
for(i=0;i<=n;i++){
printf("\n %d \t %s \t\t\t %s \t %c \t %5.2f \t %5.2f",i+1,ci[i],nom[i],gi,vsb[i],vsn[i]);
}
printf("\n---------------------------------------------------------------");
printf("\nTotales--------------------\t\t\t %5.2f \t %5.2f",a1,a2);
printf("\n\n");
printf("\nDatos del empleado con mayor sueldo neto");
printf("\n %d \t %s \t %s \t %5.2f",k+1,ci[k],nom[k],vsn[k]);
printf("\n Enter");
getchar();
pausa=getchar();
return 0;
}
  #2 (permalink)  
Antiguo 15/11/2010, 07:53
 
Fecha de Ingreso: abril-2010
Ubicación: Rosario
Mensajes: 1.850
Antigüedad: 14 años
Puntos: 228
Respuesta: Necesito ayuda

Con repetir a que te refieres, se imprime dos veces. O se almacena en el string dos veces?

Podrias identar el codigo y ponerlo con highligth! Gracias
  #3 (permalink)  
Antiguo 15/11/2010, 19:15
 
Fecha de Ingreso: noviembre-2010
Mensajes: 2
Antigüedad: 13 años, 5 meses
Puntos: 0
Respuesta: Necesito ayuda

que no pueda meter 2 cedulas iguales es decir q no se repitan dichos numeros... :s apreciaria mucho su ayuda... gracias...
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 03:04.