Autor
|
Tema: necesito ayuda aqui, plox, me podrian ayudar? (Leído 2,695 veces)
|
LARANARENElol
Desconectado
Mensajes: 11
|
disculpen pero este programa ya me tiene bien tilteado pero no se que hacer para que funcione de una mendig vez, esta es la sintaxis del problema: En una escuela se desea un programa que permita la entrada de los nombres (proporcionar por separado: nombre, apellido paterno y apellido materno) y promedios de cada uno de los alumnos que van a egresar de secundaria, se desea mostrar un listado de cuantos son de apellido paterno “CARDENAS”, además se va a dar un reconocimiento al alumno con el promedio más alto por lo que el programa deberá mostrar también el nombre y promedio del alumno con el promedio más alto. Al mostrar el nombre completo del alumno con máximo promedio deberá estar concatenado. Nota.- el programa finaliza cuando el usuario no tenga más alumnos por capturar (respuesta si-no) y esto es lo que llevo del mismo, (me da erroe en el main donde dice R= registro(nom,ape,apeM,calif, &n); #include<stdio.h> #include<stdlib.h> #include<string.h> #include<ctype.h> void registro( char nom[30][15],char ape[30][15], char apeM[30][15], float calif[30],int *n); void main(void) {int y, n=0,R; char nom[15], ape[15],apeM[15]; char R,cadena1[9]="Cardenas",nombrecompleto[30],nomcalifM[30]=""; float* calif;float cont1=0,califM=0; R= registro(nom,ape,apeM,calif, &n); { if(y<30) if(calif>califM) { califM=calif; } if(calif>califM); {califM=calif; strcpy(nomcalifM ,nombrecompleto ); printf("El nombre de la persona con mayor promedio es= %s con un promedio de %f\n",nomcalifM ,califM ); } } { cont1++; } printf("El numero de personas con apellido paterno Cardenas es = %.0f\n",cont1 ); } void registro(char nom[30][15],char ape[30][15], char apeM[30][15], float calif[30], int *n) {char R; do { printf("Ingrese el nombre\n"); printf("Ingrese apellido paterno\n"); printf("Ingrese apellido materno\n"); *n=*n+1; printf("Desea ingresar otro\ S/N\n"); }while(R!='N'); }
espero que me puedan ayudar, paz, tal vez en un rato vuelva a preguntar por que a vectores casi no le estoy entendiendo y no quiero suspender la materia :`c
|
|
|
En línea
|
|
|
|
AlbertoBSD
Programador y
Moderador Global
Desconectado
Mensajes: 3.705
🏴 Libertad!!!!!
|
registro no devulve ningun tipo de dato. eso da error, ademas R es solo un caracter y no una cadena o algun otro tipo. La concatenacion de candenas podrias realizarla mas rapido de la siguiente manera: sprintf(nombrecompleto ,"%s %s %s",nom ,ape ,apeM );
Saludos!
|
|
|
En línea
|
|
|
|
K-YreX
|
Un par de cosas básicas que hay que arreglar: - Tienes una variable <R> de tipo <int> y otra variable <R> de tipo <char>. Error, no pueden tener el mismo nombre. - Como ya te han dicho la función <registro()> no devuelve ningún valor de retorno, no puedes hacer <R = registro(...)>. - También te han comentado ya como concatenar el nombre con los apellidos, ya que si usas la función <strcpy> lo que haces es copiar una cadena en otra eliminando lo que tuviese la cadena destino. En todo caso infórmate sobre la función <strcat> o mejor aun la variante <strncat> por seguridad. - Después de la condición de un <if> van las llaves "{}", no va un ";". Además tienes dos <if> seguidos con la misma condición pero con modificaciones que alteran el resultado de la condición y no entiendo muy bien eso. - El contador <cont1> va a valer 0 o 1 ya que sólo se va a incrementar como mucho una vez. Y por qué hacer los contadores de tipo <float>?? Un contador vale 1 o 2 o 3... pero no 1.5... - Tienes un bloque entre llaves en el <main> sin sentido. Osea unas llaves que se abren y se cierran pero no llevan ninguna sentencia antes como puede ser un <if> o un <while> o algo por el estilo. - La función <registro()> recibe como parámetros matrices de tipo <char> y tú le mandas arrays en el <main>. Otro par de cosas que deberías mejorar: - No usar <fflush(stdin)>. - No usar <system("pause")>. Sustitúyelo por <getchar()>. - No usar <gets>. Usar <fgets> en su lugar. - Qué narices es el parámetro <n> que pasas por referencia?? Creo entender que es el contador, pero... Ahora sólo te queda investigar un poco lo que te hemos aconsejado y ver cómo modificas tu programa. Y ahora me voy a dormir que me iba a ir cuando he visto el programa pero iba a tener pesadillas si no hacía nada al respecto. Suerte
|
|
|
En línea
|
cout << "Todos tenemos un defecto, un error en nuestro código" << endl;
|
|
|
|
LARANARENElol
Desconectado
Mensajes: 11
|
bueno, me pudenen hacer mi tarea, o parte de ella, es que casi no le entiendo a vectores y este programa lo necesito para ahora eb la night, so me pueden ayudar?
el problema o programa es: Elaborar un programa que capte un grupo de sueldos de los empleados de una empresa (nómina), tomando en cuenta que el programa debe pedir sueldos mientras el usuario elija la opción de continuar. Al finalizar la captura de la nómina, el programa deberá generar un reporte con lo siguiente: ● Total de nómina de la empresa ● Los sueldos ordenados de menor a mayor ● Cantidad de empleados capturados ● Promedio de sueldo de la nómina ● Cantidad de empleados con un sueldo superior al promedio El programa debe usar funciones y considerar un grupo máximo de 100 empleados. Validar que no existan sueldos negativos.
si no quieren pues no pasa nada, ya me han ayudado mucho por muchas semanas, son geniales y gracias en serio, no puedo pedir una mejor comunidad, pero a ver si me podrian ayudar
|
|
|
En línea
|
|
|
|
|
dariodr01
Desconectado
Mensajes: 27
|
Hola, la entrada de datos podria ser asi: Salu2. while (opcion != 'n') { printf("Nombre del alumno: "); scanf("%s",apellidoPaterno [i ]); scanf("%s",apellidoMaterno [i ]); printf("Promedio del alumno: "); scanf("%f",&promedio [i ]); printf("Capturar mas alumnos s/n: "); if (opcion == 's') i++; if (i > 100) { printf("Lo siento, la lista esta llena."); break; } }
Y la comparacion del apeellido podria ser asi: for (j=0; j<i+1; j++) { if (strcmp(apellidoPaterno [j ],patron ) == 0) { printf("Nombre: %s\n",nombre [j ]); printf("Apellido paterno: %s\n",apellidoPaterno [j ]); printf("Apellido materno: %s\n",apellidoMaterno [j ]); } }
Ahora te toca armas el programa.
|
|
|
En línea
|
|
|
|
K-YreX
|
Hola, la entrada de datos podria ser asi: Salu2. while (opcion != 'n') { printf("Nombre del alumno: "); scanf("%s",apellidoPaterno [i ]); scanf("%s",apellidoMaterno [i ]); printf("Promedio del alumno: "); scanf("%f",&promedio [i ]); printf("Capturar mas alumnos s/n: "); if (opcion == 's') i++; if (i > 100) { printf("Lo siento, la lista esta llena."); break; } }
No es recomendable usar <break> para salir de un bloque que no sea un <switch>. Lo correcto sería un <do while> y en el <while> dos condiciones (opcion != 'n' && i < 100). Y no controlo demasiado de C sin compilar pero igual tienes problemas con los saltos de línea en el buffer...
|
|
|
En línea
|
cout << "Todos tenemos un defecto, un error en nuestro código" << endl;
|
|
|
|
Mensajes similares |
|
Asunto |
Iniciado por |
Respuestas |
Vistas |
Último mensaje |
|
|
necesito ayuda son nuevo aqui....
Programación C/C++
|
christian_aqp
|
1
|
2,120
|
30 Marzo 2012, 05:17 am
por durasno
|
|
|
Necesito una explicacion en JAVA, plox :'v
Java
|
caxlsh
|
2
|
2,240
|
2 Septiembre 2016, 22:42 pm
por Javasote
|
|
|
ayuda soy nuevo en esto me podrian ayudar nc como comenzar este problema
Programación C/C++
|
estebanxdx
|
2
|
4,977
|
6 Febrero 2018, 15:00 pm
por dijsktra
|
|
|
hola me podrían ayudar necesito hakear la cuanta de facebook
Foro Libre
|
fox
|
2
|
1,900
|
25 Junio 2018, 17:20 pm
por simorg
|
|
|
Error ld 1 returned status. Ayuda plox
Programación C/C++
|
daaralvarez
|
3
|
1,593
|
20 Noviembre 2018, 09:34 am
por K-YreX
|
|