Foro de elhacker.net

Programación => Programación C/C++ => Mensaje iniciado por: miguelb18 en 25 Agosto 2010, 21:31 pm



Título: me ayudan con este programa
Publicado por: miguelb18 en 25 Agosto 2010, 21:31 pm
alguien me diria que tengo mal en este programa que lo ejecuto con el devc++ y no me corre! =s... debe ser un menu que cada opcion ejecute lo que dice cada 1, pero que en la opcion 3 los numeros del 1er arreglo y del 2do arreglo que se repitan se cargen en el 3er arreglo y deben ser con una funcion pero no he logrado aun que el 3er arreglo me corra con una funcion. me dirian si estoy bien o mal? o me podrian guiar? muchas gracias de antemano

#include <stdio.h>
#include <stdlib.h>

int main(int argc, char *argv[])
{
        int opcion,i,j,k;
        int a[10];
        int b[10];
        int c[10];

        printf ("\nProyecto De Programacion I");
        printf ("\n1.-LLenar Arreglo A");
        printf ("\n2.-Llenar Arreglo B");
        printf ("\n3.-Interceptar Arreglos");
        printf ("\n4.-Salir");

        printf ("\n\nElije una Opcion :");scanf ("%d",&opcion);

        switch (opcion)
                        {
                        case 1:
                        for (i=0;i<=10;i++){
                        printf ("\nDiga los numeros");
                        scanf("%d",&a[10]);
                                break;
                        case 2:
                        for (j=0;j<=10;j++){
                        printf ("\nDiga los numeros");
                        scanf("%d",&b[10]);
                                break;
                        case 3:
                        printf("el resultado es: ");
                                break;
                        case 4:
                                exit (0);
                        default :
                        printf ("\nSu opción no está disponible");
                        printf ("\nInténtelo con otra");
                        }
                        {
                        for (k=0;k<10;k++);
                        if (a= b[j]);
                        c[k]=a;
                        }   
}
system ("PAUSE");
return 0;


Título: Re: me ayudan con este programa
Publicado por: Horricreu en 25 Agosto 2010, 21:38 pm
Varios fallos:

  • Utilizas las funciones exit() y system() de la librería stdlib que pueden ser cambiadas por un return 0 y la función getchar(), de la librería stdio.h, respectivamente.
  • Tienes errores en las llaves de la primera y segunda opción del swtich().
  • En el último if() te falta poner otro signo de igual y, tampoco puedes hacer esta comparación.

Saludos :P


Título: Re: me ayudan con este programa
Publicado por: miguelb18 en 25 Agosto 2010, 22:08 pm
si amigo muchas gracias, te explico apenas estoy iniciando en lenguaje c y solo se trabajar con la biblioteca stdio y el profesor que me da clases no  explico nada de eso porque quiere que todos salgan mal... si hice lo que hice fue porque investigue por internet y por mi propia logica... de verdad si pudieras aclararme mas te lo agradeceria mucho


Título: Re: me ayudan con este programa
Publicado por: Horricreu en 25 Agosto 2010, 22:34 pm
  • Utilizas las funciones exit() y system() de la librería stdlib.h que pueden ser cambiadas por un return y la función getchar(), de la librería stdio, respectivamente.
  • Tienes errores en las llaves de la primera y segunda opción del swtich().
  • En el último if() te falta poner otro signo de igual y, tampoco puedes hacer esta comparación.

Te respondo en orden:

  • exit() (http://www.cplusplus.com/reference/clibrary/cstdlib/exit/) sirve para terminar procesos y ya la puedes utilizar pero, para mejor utiliza return 0 que es lo que se usa ahora. La función system() (http://www.cplusplus.com/reference/clibrary/cstdlib/system/) no es portable y, hay sustitutos mejores como getchar() (http://www.cplusplus.com/reference/clibrary/cstdio/getchar/). Ambas funciones que utilizaste primeramente, pertenecen a la librería stdlib.h y puedes ahorrarte incluir esta librería con las soluciones que te propuse.
  • Las llaves se utilizan de la siguiente manera (te pongo un ejemplo luego ya que la etiqueta [list][/list] no me deja colorear el código).
  • Finalmente, léete esto (http://es.wikipedia.org/wiki/Operadores_de_C_y_C%2B%2B), el apartado de operadores de comparación para saber como utilizarlos.

Ejemplo que llaves:

Código
  1. #include <stdio.h>
  2.  
  3. int main()
  4. {
  5. int a = 1;
  6. int b = 2;
  7. int c = 1;
  8. int d = 1;
  9.  
  10. if(a != b)
  11. {
  12. printf("'a' no equivale a 'b'.");
  13.  
  14. b = 1;
  15.  
  16. printf("Ahora sí que 'a' equivale a 'b'.");
  17.  
  18. //Fíjate que puse las llaves después del if()
  19. }
  20.  
  21. if(c == d) printf("'c' equivale a 'd'.");
  22.  
  23. //Pero en las instrucciones de una sola sentencia no hace falta poner las llaves
  24.  
  25.  
  26. return 0;
  27. }

Saludos :P


Título: Re: me ayudan con este programa
Publicado por: miguelb18 en 25 Agosto 2010, 22:46 pm
si, pero las llaves son porque estoy trabajando con arreglos y segun investigue debo poner las llaves para cargar los arreglos...


Título: Re: me ayudan con este programa
Publicado por: Horricreu en 25 Agosto 2010, 22:49 pm
si, pero las llaves son porque estoy trabajando con arreglos y segun investigue debo poner las llaves para cargar los arreglos...

¿Y qué importa si trabajas con arreglos? Te he dicho que en las instrucciones con más de una sentencia se ponen llaves y en las de una sentencia no hace falta ponerlas.

Saludos :P


Título: Re: me ayudan con este programa
Publicado por: miguelb18 en 25 Agosto 2010, 22:53 pm
bueno no entendi pero muchas gracias voy a tratar de entender eso que dijiste y a ponerlo en practica xD =) gracias


Título: Re: me ayudan con este programa
Publicado por: Horricreu en 25 Agosto 2010, 22:57 pm
bueno no entendi pero muchas gracias voy a tratar de entender eso que dijiste y a ponerlo en practica xD =) gracias

¿Cómo que no entendiste? Está más claro que el agua.

Código
  1. #include <stdio.h>
  2.  
  3. int main()
  4. {
  5. int a = 1;
  6. int b = 1;
  7.  
  8. if(a == b) //Esto es una instrucción
  9. {
  10. printf("'a' equivale a 'b'."); //Esto es una sentencia
  11. }
  12.  
  13.  
  14. return 0;
  15. }

¿Aún no entiendes nada?

Saludos :P


Título: Re: me ayudan con este programa
Publicado por: miguelb18 en 25 Agosto 2010, 23:05 pm
es que eso si lo entiendo pero no se para que me sirve, lo que sucede es que no estoy familiarizado con los arreglos y lo que yo quiero es que los numeros que yo ingrese en el case 1 en un arreglo y esten repetidos en el case 2 en el otro arreglo me los carge en un arreglo en el case 3 a traves de una funcion y me los muestre en pantalla. yo en mi vida habia programado y apenas me estoy adaptando diskulpa por no entender...

Lh: No hagas doble post, utiliza el botón modificar.

esto es lo ultimo que he hecho segun lo que pude entender pero me sigue dando error en la ultima linea del return 0

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

int c[10];
int main(int argc, char *argv[])
{
        int opcion,i,j,k;
        int a[10];
        int b[10];

        printf ("\nProyecto De Programacion I");
        printf ("\n1.-LLenar Arreglo A");
        printf ("\n2.-Llenar Arreglo B");
        printf ("\n3.-Interceptar Arreglos");
        printf ("\n4.-Salir");

        printf ("\n\nElije una Opcion :");scanf ("%d",&opcion);

        switch (opcion)
                        {
                        case 1:
                        for (i=0;i<=10;i++){
                        printf ("\nDiga los numeros");
                        scanf("%d",&a[i]);
                                break;
                        case 2:
                        for (j=0;j<=10;j++){
                        printf ("\nDiga los numeros");
                        scanf("%d",&b[j]);
                                break;
                        case 3:
                        printf("el resultado es: ",c[10]);
                                break;
                        case 4:
                                exit (0);
                        default :
                        printf ("\nSu opción no está disponible");
                        printf ("\nInténtelo con otra");
                        }
                        {
                        int c[10];
                        int a=1;
                        int b=2;
                        int d=1;
                        int e=1;
                       
                        for (k=0;k<10;k++);
                         if (a != b);
                         {
                         printf ("'a' no equivale a 'b'");
                         b = 1;
                         printf("'a' equivale a 'b'");
                        }
                        if (d == e);
                        printf("'d' equivale a 'e");
getchar ();
}
return 0;


Título: Re: me ayudan con este programa
Publicado por: Shell Root en 25 Agosto 2010, 23:23 pm
A poco estó return 0; no tiene que ir dentro del main. Así:

Código
  1. int main(/*Parámetros*/){
  2.   return 0;
  3. }
Es el retorno de la función.


Título: Re: me ayudan con este programa
Publicado por: miguelb18 en 25 Agosto 2010, 23:26 pm
cuando hago eso me dice que el error esta en el corchete... siempre es en la ultima linea que se produce el error...


Título: Re: me ayudan con este programa
Publicado por: Horricreu en 25 Agosto 2010, 23:34 pm
Sigues sin cerrar bien las llaves. Como no has entendido nada de nada, cómprate un buen libro y empieza desde cero.

Saludos :P


Título: Re: me ayudan con este programa
Publicado por: miguelb18 en 25 Agosto 2010, 23:37 pm
jaja si bueno pero igual no me da tiempo para aprender con un libro voy a investigar por internet a ver si logro resolver muchas gracias y disculpa todas las molestias


Título: Re: me ayudan con este programa
Publicado por: Horricreu en 25 Agosto 2010, 23:46 pm
De nada ::)

Saludos :P