elhacker.net cabecera Bienvenido(a), Visitante. Por favor Ingresar o Registrarse
¿Perdiste tu email de activación?.

 

 


Tema destacado: ¿Eres nuevo? ¿Tienes dudas acerca del funcionamiento de la comunidad? Lee las Reglas Generales


  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  ;-)
Código
  1.  


OBS: la estructura del problema 1 ya esta en el codigo que  está a continuacion

Código
  1. typedef struct dat
  2. {
  3.    double aa;
  4.    int* pp;
  5. }dat;
  6.  
  7. int f=34;
  8.  
  9. dat func(dat*);
  10.  
  11. int main()
  12. {
  13. dat var;
  14.  
  15. dat* puntero=malloc(sizeof(dat));
  16.  
  17. var.aa=0.0;
  18. var.pp=NULL;
  19.  
  20. var=func(puntero);
  21.  
  22.  
  23.  
  24. printf("%d",var.aa);
  25. printf("%d",var.pp);
  26.  
  27.  
  28. return 0;
  29. }
  30.  
  31. dat func(dat* x)
  32. {
  33.    x->aa=78.9;
  34.    x->pp=&f;
  35.  
  36.    return x;
  37. }
  38.  
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:

Código
  1. #include <stdlib.h>
  2. #include <stdio.h>
  3.  
  4. int main()
  5. {
  6.    int numero,cont,suma=0,resta=0,total;
  7.  
  8.    printf("Ingrese la cantidad de numeros consecutivos a sumar:");
  9.    scanf("%d",&numero);   // se lee el dato
  10.  
  11.    cont=1;
  12.    while(cont<=numero)
  13.    {
  14.        (cont%2==0)? resta=resta-cont:suma=suma+cont;   // linea14
  15.        (cont%2==0)? printf("%d",resta):printf("%d",suma);                                                        
  16.        cont++;    
  17.    }
  18.  
  19.    total=resta+suma;
  20.    printf("El resultado es:%d",total);
  21.  
  22.    return 0;
  23. }
  24.  
¿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
Páginas: [1]
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines