|
Mostrar Temas
|
Páginas: [1]
|
1
|
Programación / Programación C/C++ / Consulta sobre retorno en las funciones
|
en: 25 Junio 2018, 04:15 am
|
Buenas noches a todos, espero que esten bien. El problema dice lo siguiente: "Cree en el main() una variable del tipo struct dat del problema 1. Inicialize aa en 0.0 y pp en NULL. Cree una funcion que retorne una estructura del tipo struct dat del problema 1 y asigne este retorno a la variable creada en el main(). Los valores de la estructura de retorno debe recibirlos como argumentos de la funcion y deben ser 78.9 para aa y una direccion de una variable que ya exista(Ud. debe crearla) en el main del mismo tipo." Tengo entendido si se requiere modificar los valores se debe utilizar un puntero, en este caso deberá ser un puntero a estructura. Mi problema esta en el momento del retorno de la función. ¿Esta mal planteada o hay un error en el main? Cualquier tip de utilidad será bienvenido. GRACIAS DE ANTEMANO
OBS: la estructura del problema 1 ya esta en el codigo que está a continuacion typedef struct dat { double aa; int* pp; }dat; int f=34; dat func(dat*); int main() { dat var; dat* puntero=malloc(sizeof(dat)); var.aa=0.0; var.pp=NULL; var=func(puntero); printf("%d",var.aa); printf("%d",var.pp); return 0; } dat func(dat* x) { x->aa=78.9; x->pp=&f; return x; }
|
|
|
2
|
Programación / Programación C/C++ / AYUDA! fallo en la impresion
|
en: 20 Junio 2018, 22:59 pm
|
Buenas tardes a todos , espero que estén muy bien.
Enunciado del problema: Hacer una estructura llamada alumno, en la cual se tendrán los siguientes miembros: Nombre, edad, promedio, pedir datos al usuario para 3 alumnos, comprobar cuál de los 3 tiene el mejor promedio y posteriormente imprimir los datos del alumno.
Tengo el problema en la impresión de los datos de la persona con mejor promedio. ¿esta bien utilizado el puntero? de no ser así, ¿ como se utiliza correctamente el puntero a estructura para llevarlo a una función?
lo que quería hacer en la función promedio es llevar todo el arreglo a la función( es un arreglo de estructuras)
Llevo mucho tiempo averiguando cual es el error, si me ayudan seria fantástico. gracias de antemano
#include <stdio.h>
typedef struct alumnos { char nombre[20]; int edad; int promedio; }alumno;
void datos(); void promedio();
int main() { alumno arr[3];
datos(arr[0]); datos(arr[1]); datos(arr[2]);
promedio(arr);
return 0; }
void datos(alumno x)// se rellenan los datos en cada estructura { printf("\nNombre alumno:"); scanf("%s",&x.nombre); printf("\nEdad:"); scanf("%d",&x.edad); printf("\nPromedio:"); scanf("%d",&x.promedio);
}
void promedio(alumno* arr) { int i,pos,max=0;
for(i=0;i<3;i++)// se compara el promedio de cada alumno { if(max<arr.promedio) max=arr.promedio; pos=i;// se guarda la posición del alumno con el mejor promedio }
printf("\nEl alumno con la mejor nota es: \n"); printf("\nNombre: %s",arr[pos].nombre); printf("\nEdad: %d",arr[pos].edad); printf("\nPromedio: %d\n\n",arr[pos].promedio);
}
|
|
|
3
|
Programación / Programación C/C++ / Ayuda, Arreglo de estructuras
|
en: 14 Junio 2018, 02:06 am
|
Buenas noches a todos, espero que esten bien. Mi consulta es ¿ el numero de elementos que posea la estructura puede ser cualquiera o hay que definirlos? por ejemplo en vez de "{3,4.5}" colocar "{3,5,4.5}" Lo otro, como puedo imprimir el numero 5 en el ultimo caso propuesto? #include <stdio.h> #include <stdio.h> typedef struct beta { int n; float d; }dat; double func(dat*); typedef dat alfa[3]; double ff(alfa); int main() { dat gama[3]={{3,4.5},{6,7.0},{23,6.7}}; printf("%.2lf\n",func(gama));//imprime 7.0 printf("%.2lf\n",ff(gama));//imrpime 6.7 return 0; } double func(dat* x) { return x[1].d;// si es solo x[1] selecciona el conjunto 3,4; x[1].d selecciona el flotante de ese conjunto } double ff(alfa x) { return x[2].d; } Gracias de antemano
|
|
|
4
|
Programación / Programación C/C++ / Invertir una palabra, ERROR
|
en: 22 Mayo 2018, 02:16 am
|
Buenas noches a todos, espero que estén bien.
tengo un problema con el codigo. Resulta que al ingresar una palabra de 3 caracteres se invierte con exito, pero cunado ingreso una de 4 o mas caracteres esta se invierte pero arroja otros caracteres que no corresponden.
ej. Ingrese una palabra: estadio Palabra invertida: oidatseuÒLHı■ èjuestadio
se invierte la palabra(rojo), pero el resto esta de más...
Aqui les dejo el codigo
#include <stdlib.h> #include <stdio.h>
int main() { int i,k,tam=0; char pal[20]; char inv[20];
printf("Ingrese una palabra:"); scanf("%s",pal);
for(i=0;i<21;i++)//TAMAÑO DE LA PALABRA { if(pal!=0) tam++; else break; }
for(k=0;k<=tam-1;k++)//INVERTIR LA PALABRA { inv[k]=pal[tam-1-k]; } printf("Palabra invertida:%s",inv); return 0; }
A mi juicio el for para invertir esta bien, tendra un error o es el printf del final? Gracias de antemano
|
|
|
5
|
Programación / Programación C/C++ / Problema arrays
|
en: 13 Mayo 2018, 20:52 pm
|
Hola a todos, espero que esten bien. De un array[5]={1,4,8,3,7} debo imprimir cada valor en asteriscos En este caso seria: * **** ******** *** ******* Se que debo hacer un for(i=0;i<4;i++) el cual me indica las filas, pero mi problema es como hacer que se imprima los asteriscos segun el valor que le corresponda.
|
|
|
6
|
Programación / Programación C/C++ / AYUDA! Verificar si un numero es par/impar , compuesto/primo
|
en: 7 Mayo 2018, 17:00 pm
|
Buenos dias a todos, espero que esten bien Tengo un problema con lo que he programado. El ejercicio me pide que el usuario ingrese un numero y se debe verificar todos los numeros, desde el 1 hasta el ingresado, si son par/impar compuesto/primo. El error es que al compilar me dice que el 9 es impar y PRIMO, cosa de que el 9 es divisible por 1,3y9 lo cual seria un numero compuesto. #include <stdlib.h> #include <stdio.h> int main() { int n,i,k,cont=0; printf("Ingrese un numero:"); scanf("%d",&n); for(i=1;i<=n;i++) { if(i%2==0) { if(i==2) { printf("El numero 2 es par y primo\n"); } else { printf("El numero %d es par y compuesto\n",i); } } else { if(i==1) { printf("El numero 1 es impar\n"); } else { for(k=2;k<i;k++) { if(i%k==0) { cont++; } } if(cont>2) { printf("El numero %d es impar y compuesto\n",i); } else { printf("El numero %d es impar y primo\n",i); } } } } } Creo que el error deberia estar en el ultimo for que utilize, cuando empieza el analisis de los impares. GRACIAS DE ANTEMANO
|
|
|
7
|
Programación / Programación C/C++ / ayuda! error: lvalve required as left operand of assignmet
|
en: 1 Mayo 2018, 17:52 pm
|
Buenas tardes a todos, espero que esten muy bien. El problema que debo resolver es :"SUMA 1-2+3-4+5-6....n" Mi observacion: pares son negativos e impares positivos. El unico error que se detecto es :"14: lvalve required as left operand of assignmet" lo que realizé fue lo siguiente: #include <stdlib.h> #include <stdio.h> int main() { int numero,cont,suma=0,resta=0,total; printf("Ingrese la cantidad de numeros consecutivos a sumar:"); scanf("%d",&numero); // se lee el dato cont=1; while(cont<=numero) { (cont%2==0)? resta=resta-cont:suma=suma+cont; // linea14 (cont%2==0)? printf("%d",resta):printf("%d",suma); cont++; } total=resta+suma; printf("El resultado es:%d",total); return 0; }
¿Que significa ese error? ¿Esta mal planteado el programa? gracias de antemano · Los códigos deben ir en etiquetas GeSHi · No se debe escribir en mayúsculas >aquí las reglas del foro -Engel Lex
|
|
|
|
|
|
|