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

 

 


Tema destacado: Usando Git para manipular el directorio de trabajo, el índice y commits (segunda parte)


  Mostrar Mensajes
Páginas: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 [16] 17
151  Programación / Programación C/C++ / Re: [C] Pasar Array como parámetro a funcion INT o FLOAT en: 8 Agosto 2016, 00:42 am
Era eso, las vacaciones me hicieron mal. Gracias!!

PD: Ademas de tanto intentar, vi que el codigo que esta arriba tiene varias cosas mal. No lo usen como ejemplo para pasaje de parametros, cualquier cosa manden MP.
152  Programación / Programación C/C++ / [C] Pasar Array como parámetro a funcion INT o FLOAT en: 8 Agosto 2016, 00:27 am
Buenas noches, verán me encuentro con un problema, estoy terminando un tp para la facultad, y me encuentro con que debo pasar un array a una funcion INT para que cuente los "ausentes", los "0", y me devuelva la cantidad de estos.

El tema es el siguiente, en el mismo programa tengo el pasaje de este mismo vector a una funcion VOID y me la devuelve a main sin problemas, cuando me la devuelve la quiero enviar así como está a la funcion INT, pero se envía con basura.

Les paso a poner el código: OBVIAR LA FUNCION VOID.

Código:
#include <stdio.h>
#include <stdlib.h>
#include <stdbool.h>

void carga(float al[], int x);
void ausentes(float al[], int x);

int main()
{
    int j, aus;
    float alumnos[5];

    carga(alumnos,5);

    for(j=1;j<=5;j++){
        printf("Alumno %d\t Nota %.2f\n",j,alumnos[j]);
    }

    ausentes(alumnos,5);

    return 0;
}


void carga(float al[], int x){   //CARGA DE NOTAS

    int i, trunca=0;
    float nota=0, verif, resul=0;
    bool vof=false;
    al[x];

    while(nota>=0){
        nroal:
        printf("\nIngrese la nota a inscribir ");
        scanf("%f", &nota);
        printf("\nIngrese el numero de alumno a modificar ");
        scanf("%d", &i);

        if(nota>=1){            //PURGA DE NOTA INVALIDA Y CORRECCION DE DECIMALES
            while(nota>10){
                printf("\nNota erronea, vuelva a ingresar ");
                scanf("%f", &nota);
            }
            trunca=nota;
            resul=nota-trunca;
            if(resul>0 && resul<0.25){
                nota=trunca+0.25;}
            if(resul>0.25 && resul<0.5){
                nota=trunca+0.5;}
            if(resul>0.5 && resul<0.75){
                nota=trunca+0.75;}
            if(resul>0.75 && resul<=0.99){
                nota=trunca+1;}
            resul=0;
            trunca=0;

            }
            else if(nota<0){    //NOTA NEGATIVA
                break;
            }

        while(i>x || i<0){             //VERIFICACION ALUMNO
            printf("\nError en el numero de alumno, vuelva a ingresar ");
            scanf("%d", &i);
        }
        verif=al[i];
        if(verif>=1){           //VERIFICACION DE CARGA DE NOTA
            printf("\nEl alumno ya tiene inscripta la nota: %.2f", verif);
                goto nroal;
            }else{

        al[i]=nota;}

    }
}

int ausentes(float al, int x){
    int i, contador=0;

    for(i=1;i<=x;i++){
        printf("Alumno %d: %.2f\n", i, al[i]);
    }

    for(i=1;i<=x;i++){
        if(al[i]<1){
            contador+=1;
        }
    }
    printf("%d", contador);
    return contador;
    }
153  Programación / Programación C/C++ / Re: [C] Pasar array como parametro a un "procedimiento" (void) en: 11 Junio 2016, 23:38 pm
El error es que no tienes definidas las funciones muestra y muestrainversa

Solo estan definidas las funciones suma y promedio.

Respecto a tu pregunta, los arreglos se pasan exactamente igual que como lo haces en las funciones suma y promedio.

Otra cosa, las funciones suma y promedio reciben la varaible tamaño pero en el for no es usada, se coloca 5 siempre:

cuando veria de ser i < tamano



Saludos

Jodeme que es porque todavía no las explayé abajo... jaja. Pense que no deberia saltar el error en ese caso, perdon por hacerte responder tan boluda pregunta! Y gracias por lo de tamano, no me habia percatado.
154  Programación / Programación C/C++ / [C] Pasar array como parametro a un "procedimiento" (void) en: 11 Junio 2016, 23:15 pm
Buenas tardes, mi duda es la siguiente. Como puedo pasar como parametro un array unidimensional o bidimensional a un "procedimiento" (void). Aclaro que es un void porque se que no existen los procedimientos en C, pero en donde estudio, las funciones de tipo void las llamamos procedimientos.

Marco donde me marca error el compilador con comentarios:

Código
  1. #include <stdio.h>
  2. #include <stdlib.h>
  3.  
  4. /*Cuatro EJERCICIOS - Pide valores para un vector de 5 posiciones y..
  5. 1- Los muestro
  6. 2- Los muestro invertidos
  7. 3- Muestro la suma
  8. 4- Muestro el promedio*/
  9.  
  10. int suma(int numeros[], int tamano);
  11. int promedio(int numeros[], int tamano);
  12. void muestra(int numeros[], int tamano);
  13. void muestrainversa(int numeros[], int tamano);
  14.  
  15. int main()
  16. {
  17.    int numeros[5], i;
  18.    int opc;
  19.  
  20.    printf("CARGA DE ARRAY\n");
  21.    for(i=0;i<5;i++){
  22.        printf("\nIngrese un numero ");
  23.        scanf("%d", &numeros[i]);
  24.    }
  25.  
  26.    printf("\n1- Suma\n2- Promedio\n3- Muestra\n4- Muestra Inversa\n");
  27.    scanf("%d", &opc);
  28.  
  29.    switch(opc){
  30.    case 1:
  31.        printf("\nLa suma es: %d", suma(numeros,5));
  32.        break;
  33.    case 2:
  34.        printf("\nEl promedio es: %d", promedio(numeros,5));
  35.        break;
  36.    case 3:
  37.        muestra(numeros,5); //ERROR
  38.        break;
  39.    case 4:
  40.        muestrainversa(numeros,5); //ERROR
  41.        break;
  42.    }
  43.    return 0;
  44. }
  45.  
  46. int suma(int numeros[], int tamano){
  47.    int sumatoria=0, j;
  48.  
  49.    for(j=0;j<5;j++){
  50.        sumatoria+=numeros[j];
  51.    }
  52.  
  53.    return(sumatoria);}
  54.  
  55. int promedio(int numeros[], int tamano){
  56.    int sumatoria=0,j;
  57.  
  58.    for(j=0;j<5;j++){
  59.        sumatoria+=numeros[j];
  60.    }
  61.  
  62.    return(sumatoria/5);}
155  Programación / Programación C/C++ / Re: [C] Ayuda Pirame-Arbol con * en: 3 Junio 2016, 00:38 am
No es un printf "vacío". Lo que hace ese printf es imprimir un espacio. Es como si pusieras putc(' '). Ahí hay un espacio. En ANSI C no puedes moverte por la consola con un sistema de coordenadas. Como mucho, puedes hacer lo que se hace en el código, y es imprimir línea a línea el arbol

El árbol es el siguiente:
Código:
         
        *
       ***
      *****
     *******
    *********
   ***********
  *************

Como ves, antes de los asteriscos que forman el árbol hay espacios.

Para la primera línea, se imprimen 9 espacios, para la segunda 8, para la tercera 7... y para la última, 0 espacios. Eso es lo que hace el primer for. El segundo for imprime los asteriscos.

Sip, sabia que el printf vacio hacia el espacio, queria una solucion sin eso. Pense que con un for me podia parar en el medio de la consola. ¿La unica forma es esa?
156  Programación / Programación C/C++ / [C] Ayuda Pirame-Arbol con * en: 2 Junio 2016, 23:26 pm
Buenas tardes, hoy les pido ayuda con un programa que no logro entender la logica.
No pido que solo me muestren el codigo bien hecho, porque lo busque en internet y no puedo entender la logica de los for, sino que también me ayuden a entenderlo con comentarios en el programa.

Les paso mi programa:


Código:
#include <stdio.h>
#include <stdlib.h>

int main()
{
    int i=0,j=0,g=0;
    for(i=0;i<=8;i++)
    {
        for (j=8;j>=i;j--)
        {
            printf(" ");
        }
        for (g=1;g<=(2*i)-1;g++)
        {
            printf("*");
        }
        printf("\n");
    }
    return 0;
}

Este programa imprime medio arbol de navidad, lo que busco es que imprima uno completo en el centro de la consola.
¿Alguno me ayuda?

Mi objetivo principal es lograr entender como con un for puedo poner un * en medio de la consola. Si se puede hacer sin un printf(" "); (vacio) mucho mejor.

Y no busco utilizacion de funciones o procedimientos, solo en el cuerpo principal.

Muchas gracias!


Aca logre separarlo de la pared de la consola, pero con un printf vacio. Lo que no logro hacer es completarlo del otro lado, me queda medio arbol.

Código:
#include <stdio.h>
#include <stdlib.h>

int main()
{
    int i=0,j=0, x=0;

    for(i=1;i<18;i++){
        for(x=18;x>=i;x--){
            printf(" ");
        }
        for(j=1;j<i;j++){
            printf("*");
        }
        printf("\n");
    }

    return 0;
}
157  Programación / Programación C/C++ / Re: [C] Duda sencilla - sentencia Switch en: 31 Mayo 2016, 01:00 am
Perfecto, gracias a ambos.
158  Programación / Programación C/C++ / Re: [C] Duda sencilla - sentencia Switch en: 31 Mayo 2016, 00:25 am
Nunca lo he usado asi pero puedes empalmar las lineas:


Código
  1. switch (caracter){
  2.   case 'a':
  3.   case 'b':
  4. //hacer algo en caso de a o b
  5.   break;
  6. }

Me dijeron que lo que tenía que hacer es esto:

Código:
switch(caracter){
   case 'a','b':
        //Acciones
        break;
}

¿Es correcto?
159  Programación / Programación C/C++ / [C] Duda sencilla - sentencia Switch en: 30 Mayo 2016, 23:35 pm
Buenas tardes, verán estoy haciendo un tp en pseudo código y no estoy en mi casa para corroborar la siguiente duda.

En C, se puede poner en un mismo `case` de la sentencia switch un or?

Ejemplo:

switch (caracter)
   case `a` || `b`:
              ....
              ....

160  Sistemas Operativos / Windows / Re: Faltan uno o varios protocolos [WINDOWS10] en: 30 Mayo 2016, 23:31 pm
Tarde en responder porque no estuve usando mucho la PC, y no siempre sucede el problema.
Pero antes de ayer volvió a suceder, me saltó devuelta el error, y ya instale los protocolos como me dijo eagle.
Páginas: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 [16] 17
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines