me ayudan con este programa

Iniciado por miguelb18, 25 Agosto 2010, 21:31 PM

0 Miembros y 1 Visitante están viendo este tema.

miguelb18

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;

Horricreu

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

miguelb18

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

Horricreu

#3
Cita de: Horricreu en 25 Agosto 2010, 21:38 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() 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() no es portable y, hay sustitutos mejores como 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, el apartado de operadores de comparación para saber como utilizarlos.

Ejemplo que llaves:


#include <stdio.h>

int main()
{
int a = 1;
int b = 2;
int c = 1;
int d = 1;

if(a != b)
{
printf("'a' no equivale a 'b'.");

b = 1;

printf("Ahora sí que 'a' equivale a 'b'.");

//Fíjate que puse las llaves después del if()
}

if(c == d) printf("'c' equivale a 'd'.");

//Pero en las instrucciones de una sola sentencia no hace falta poner las llaves

getchar();

return 0;
}


Saludos :P

miguelb18

si, pero las llaves son porque estoy trabajando con arreglos y segun investigue debo poner las llaves para cargar los arreglos...

Horricreu

Cita de: 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...

¿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

miguelb18

bueno no entendi pero muchas gracias voy a tratar de entender eso que dijiste y a ponerlo en practica xD =) gracias

Horricreu

#7
Cita de: 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

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


#include <stdio.h>

int main()
{
int a = 1;
int b = 1;

if(a == b) //Esto es una instrucción
{
printf("'a' equivale a 'b'."); //Esto es una sentencia
}

getchar();

return 0;
}


¿Aún no entiendes nada?

Saludos :P

miguelb18

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

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

Shell Root

#9
A poco estó return 0; no tiene que ir dentro del main. Así:

int main(/*Parámetros*/){
  return 0;
}

Es el retorno de la función.
Por eso no duermo, por si tras mi ventana hay un cuervo. Cuelgo de hilos sueltos sabiendo que hay veneno en el aire.