/*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.*/
La funcion a) es la que me falta, la he hecho pero cuando introduzco los numeros y por ultimo el punto se me queda parado el programa, no se donde he fallado.
Código:
#include <stdio.h> #include <stdlib.h> #define PUNTO '.' int sumanumeros(int b); 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"); printf("Introduzca una serie de numeros terminada en punto"); scanf("%d",&num2); x=sumanumeros(num2); printf("La suma de los numeros es:%d \n\n\n",x); 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 sumanumeros(int b) { int suma=0; while(b!= PUNTO) { scanf("%d",&b); suma = suma + b; } return suma; } int sumadivisores(int a) { int i,suma=1; for(i=2;i<=a/2;i++) { if(a%i==0) suma=suma+i; } return suma; }