En este caso el programa me pide :
/*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;
}