Menú

Mostrar Mensajes

Esta sección te permite ver todos los mensajes escritos por este usuario. Ten en cuenta que sólo puedes ver los mensajes escritos en zonas a las que tienes acceso en este momento.

Mostrar Mensajes Menú

Mensajes - NicoSanhueza

#1
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

Código (cpp) [Seleccionar]

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
Cita de: Pieshna en 21 Junio 2018, 06:50 AM
Hola amigo, te recomendaria que usaras la cabecera iostream en vez de stdio ya que es mucho mas facil pero para gustos colores jejeje

Mira el problema esta aqui
Código (cpp) [Seleccionar]

if(max<arr.promedio)
max=arr.promedio;
pos=i;// se guarda la posición del alumno con el mejor promedio

Se te olvido abrir llaves des pues del parentesis y ejecutar
Código (cpp) [Seleccionar]

if(max<arr.promedio){
max=arr.promedio;
pos=i;// se guarda la posición del alumno con el mejor promedio
}

Pero si gustas aqui esta el ejercicio
Código (cpp) [Seleccionar]
#include <iostream>//entrada y salida estandar
#include <conio.h>//para el getch(); que es pausar pantalla

using namespace std;//evitamos escribir std::cout y std::cin cada vez... Ojo si te marca error aqui puedes eliminar esta linea

struct alumnos
{
    char nombre[20];
    int edad;
    int promedio;
}alumnos[100];//creamos 100 estructuras ya que no se sabe cuantas va a ingresar el usuario

void promedio();
int cantidad;//la hacemos variante universal para que todos los void puedan usar el dato ingresado

int main()
{
    cout<<" Cuantos alumnos desea agregar? ";
    cin>>cantidad;//ingresamos a la variante universal
    for(int i=0; i<cantidad; i++){
    cout<<" Nombre alumno: ";
    cin>>alumnos[i].nombre;
    cout<<" Edad: ";
    cin>>alumnos[i].edad;
    cout<<" Promedio: ";
    cin>>alumnos[i].promedio;
}
promedio();//mandamos a llamar el void
cout<<" Presione cualquier tecla para salir...";
getch();
}

void promedio()
{
     int i, pos,max=0;

    for(i=0;i<cantidad;i++)
    {
        if(max<alumnos[i].promedio){
        max=alumnos[i].promedio;
            pos=i;// se guarda la posición del alumno con el mejor promedio
}
}
      cout<<"\n El alumno con mejor nota es:\n";
      cout<<" Nombre: "<<alumnos[pos].nombre<<endl;
      cout<<" Edad: "<<alumnos[pos].edad<<endl;
      cout<<" Promedio: "<<alumnos[pos].promedio<<endl;

}



Muchas gracias!  ;-)
#3
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);

}
#4
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 :)
#5
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
#6
Programación C/C++ / Re: Problema arrays
13 Mayo 2018, 22:52 PM
Cita de: MAFUS en 13 Mayo 2018, 21:09 PM
Si son 5 filas el for va desde i=0 hasta i<5.

Ahora te queda por hacer otro for anidado que vaya desde j=0 hasta j<array y dentro de éste haces un putchar('*'). Ya fuera de este for, pero aun dentro del de i haces un putchar('\n') para cambiar de línea.

Muchas gracias! Se pudo programar ;-)   https://gyazo.com/b2e1d20bab065616a5b1c857a6c7f421

Una ultima consulta, solo por la curiosidad de errores  ;D

En este caso le coloque desde (i=0;i<6;i++) y el en segundo for (j=0;j<=array;j++), donde la desigualdad del i deberia ser i<5 y la de j deberia ser j<array.

¿Por que se imprime muchisimos '*'?
https://gyazo.com/1532581d371690697451a43df188f769
#7
Programación C/C++ / Problema arrays
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.
  :( :( :(
#8
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 :)
#9
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 (cpp) [Seleccionar]
#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