Foros del Web » Programación para mayores de 30 ;) » C/C++ »

programa en dev c++

Estas en el tema de programa en dev c++ en el foro de C/C++ en Foros del Web. Hola muy buenas estoy haciendo un programa con menus y tal, y nose como hacer una parte si me pudieseis ayudar...el programa dice lo siguiente ...
  #1 (permalink)  
Antiguo 14/08/2012, 10:46
 
Fecha de Ingreso: agosto-2012
Mensajes: 8
Antigüedad: 11 años, 8 meses
Puntos: 0
Pregunta programa en dev c++

Hola muy buenas estoy haciendo un programa con menus y tal, y nose como hacer una parte si me pudieseis ayudar...el programa dice lo siguiente

/*Escribir un programa que presente un menu con 3 opciones. La opcion A debera aceptar una
serie de numeros separados por un espacio y terminada en un punto, dando como resultado la
suma de todos los numeros.
La opcion B aceptara un numero y calculara la suma de sus divisores, excepto el mismo. El
menu se ejecutara hasta introducir la opcion C.*/

Lo que me falta es el apartado a que no se que hay que poner en esa función la verdad.
Esto es lo que tengo:

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

int sumadivisores(int a);
int main()
{ 
    char letra;
    int num,num2,x,cont=0;;

    do{
          system("cls");
          printf(" a)Suma de numeros \n b)Suma de divisores \n c)Salir \n");
          scanf("%c",&letra);
          
          switch(letra)
          {
                       case'a':system("cls");
                               do{
                               printf("Introduzca una serie de numeros terminada en punto");
                               scanf("%d",&num2);
                               
                               }
                               while(num2!= PUNTO);
                               printf("La suma de los numeros es:%d \n\n\n",    );
                               break;
                       case'b':system("cls");
                               printf("Introduzca un numero:");
                               scanf("%d",&num);
                               x=sumadivisores(num);
                               printf("La suma de los divisores excluyendo a el mismo es:%d \n\n",x);
                               break;
                       case'c':break;
          }
    fflush(stdin);
    system("pause");
    }
    while(letra>='a' && letra<='b');                   
    
return 0;
}

int sumadivisores(int a)
{
    int i,suma=1;
    for(i=2;i<=a/2;i++)
    {
        if(a%i==0)
        suma=suma+i;
    }
    return suma;
}

Última edición por adrianing; 14/08/2012 a las 11:01
  #2 (permalink)  
Antiguo 14/08/2012, 18:43
 
Fecha de Ingreso: agosto-2012
Mensajes: 94
Antigüedad: 11 años, 8 meses
Puntos: 7
Respuesta: programa en dev c++

Bueno, soy muy novato, esta correccion podria estar mal, mas bien lo dejo como una pregunta.

Código:
printf("La suma de los numeros es:%d \n\n\n",    );
Aca, printf necesita alguna variable para imprimir.

Ademas, si el case uno debe imprimir la suma de una serie de numeros, alli, solo se almacena un numero, no puede almacenar una serie, cada numero deberia estar en una variable diferente, o en un arreglo, y luego que el resultado de una variable equivalga a la suma de las anteriores. Luego imprimes la variable y esta.

Otra cosa que solo dejo como una recomendacion..., es que evites usar system("pause"). Siempre hay otras formas de frenar un programa por una determinada cantidad de tiempo, por ejemplo, algo simple y practico es frenarla con un getchar, ademas de frenarla puedes añadir diferentes bucles o cosas por el estilo para que el programa se frene unicamente cuando presiones una determinada tecla, o hagas algo (no se si se podria hacer con el Mouse, no estoy seguro, pero si no viene en algun estandar, siempre hay bibliotecas excelentes en internet.

Bueno, eso es todo, si erro en algo, pido disculpas, es que solo queria dejar mi opinion.
  #3 (permalink)  
Antiguo 14/08/2012, 19:07
 
Fecha de Ingreso: agosto-2012
Mensajes: 8
Antigüedad: 11 años, 8 meses
Puntos: 0
Respuesta: programa en dev c++

Sí, eso lo he dejado en blanco porque ahi es donde iba a poner la funcion que calculara la suma pero como no sabia hacerla no la he podido poner.
Tambien creo que lo que dices de una variable por numero no se puede hacer porque no sabemos cuantos numeros van a introducirse. Puede ser 2,3,70,200...
Gracias por tu opinión.
  #4 (permalink)  
Antiguo 15/08/2012, 13:36
 
Fecha de Ingreso: agosto-2012
Mensajes: 94
Antigüedad: 11 años, 8 meses
Puntos: 7
Respuesta: programa en dev c++

mmmm....

Quieres una funcion que sume los numeros que entres..., yo tengo una idea, pero solo serviria para un numero determinado de numeros, es la idea que propuse antes, o sea, sumar variables donde se agregan los numeros. Puedes hacer, un arreglo largoooooooooooooooooo, y que se detenga cuando uno quiera, con un while, y que luego sume todos los numeros que haya colocado, usando un contador, ya sabes, algo estilo n = n++, jeje.

Saludos!!!!
  #5 (permalink)  
Antiguo 15/08/2012, 17:19
 
Fecha de Ingreso: agosto-2012
Mensajes: 8
Antigüedad: 11 años, 8 meses
Puntos: 0
Respuesta: programa en dev c++

Cita:
Iniciado por harryarcoiris Ver Mensaje
mmmm....

Quieres una funcion que sume los numeros que entres..., yo tengo una idea, pero solo serviria para un numero determinado de numeros, es la idea que propuse antes, o sea, sumar variables donde se agregan los numeros. Puedes hacer, un arreglo largoooooooooooooooooo, y que se detenga cuando uno quiera, con un while, y que luego sume todos los numeros que haya colocado, usando un contador, ya sabes, algo estilo n = n++, jeje.

Saludos!!!!

ok gracias pero tampoco me sale así, fallare en algo, una pregunta ¿se puede hacer que una funcion devuelva dos valores? es decir para devolver uno hago return suma; por ejemplo, y si quiero devolver dos sumas distintas o dos cosas en general como se hace¿?
  #6 (permalink)  
Antiguo 16/08/2012, 12:49
 
Fecha de Ingreso: agosto-2012
Mensajes: 94
Antigüedad: 11 años, 8 meses
Puntos: 7
Respuesta: programa en dev c++

haz que asocie los resultados a dos variables, y haz que retorne automaticamente con printf,

Etiquetas: dev, int, programa
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 16:53.