Foros del Web » Programación para mayores de 30 ;) » Programación General »

ayuda con programa

Estas en el tema de ayuda con programa en el foro de Programación General en Foros del Web. Tengo que hacer este programa y no me sale a ver si me veis los fallos porke por mas que miro peor. Tengo qu realizar ...
  #1 (permalink)  
Antiguo 15/01/2006, 05:41
 
Fecha de Ingreso: junio-2005
Mensajes: 53
Antigüedad: 18 años, 10 meses
Puntos: 0
ayuda con programa

Tengo que hacer este programa y no me sale a ver si me veis los fallos porke por mas que miro peor.
Tengo qu realizar este programa con el siguiente menú:

1.probar * que es la llamada a una funcion que escribe en pantalla tantos asteriscos como indique el parámetro
2.Escribir serie, que es la llamada a una funcion que recibe dos numero y tiene que ir de uno numero a otro(ej: si metes 12 y 15 el programa tiene que ir 12,13,14,15)
3.Repetir carácter que es la llamada a una funcion que recibe como parámetros un carácter y un numero que se tiene que repetir tantas veces como indique el usuario
4.menor, es la llamada a una funcion que recibe como parámetros tres caracteres y devuelve el mas pequeño (ejemplo: si metes la A y la Z el programa debe devolver la A)

Y esto es lo que hecho (borland c++):

#include <stdio.h>
#include <conio.h>

void menu(void);
int probar (int asteriscos);
int serie (int num1,int num2);
char menor (char car1,char car2,char car3);
char repetir_caracter (char letra,int num);

/*Funcion principal*/

void main (void)
{
menu();
}

/*Funcion Menu*/

void menu (void)
{
int asteriscos,opcion,num,num1,num2;
char car1,car2,car3,letra;

printf("Elige una opcion, por favor:\n\n - Para dibujar en pantalla asteriscos, pulsa [1]\n - Para realizar una serie de numeros, pulsa [2]\n - Para repetir caracteres un numero de veces, pulsa [3]\n - Para ver el menor caracter, pulsa [4]\n - Para Salir, pulsa [5]\n");
scanf("%d",&opcion);

switch(opcion)
{
case 1: opcion='1';
printf("Introduce el numero de asteriscos a pintar:\n");
scanf("%d",&asteriscos);
clrscr();
printf("%d",probar(asteriscos));
getch();
clrscr();
menu();
break;

case 2: opcion='2';
printf("Introduce un numero:\n");
scanf("%d",&num1);
printf("Introduce otro numero:\n");
scanf("%d",&num2);
clrscr();
printf("%d",serie(num1,num2));
getch();
menu();
break;

case 3: opcion='3';
printf("Introduce el numero de veces :\n");
scanf("%d",&num);
printf("Introduce un caracter:\n");
scanf("%c",&letra);
printf("%c %d",repetir_caracter(letra,num));
getch();
menu();
break;

case 4: opcion='4';
printf("Introduce 3 caracteres:\n\n");
scanf("%c %c %c",&car1,&car2,&car3);
clrscr();
printf("%c",menor(car1,car2,car3));
getch();
menu();
break;

case 5: opcion='5';
printf("ADIOS!!");
getch();
break;

}

}


/*Funcion dibujar asteriscos*/

int probar (int asteriscos)
{
int i;
for(i=0; i<=asteriscos; i++)
{
printf("*");
}
return(printf("*"));
}

/*Funcion serie de numeros*/

int serie (int num1,int num2)
{
int i;

for (i=num1; i<=num2; i++)
{
printf("%d\n",i);
}

return(printf("%d\n",i));
}


/*Funcion repetir_caracter*/

char repetir_caracter (char letra,int num)
{
int i;

for(i=1; i<=num; i++)
{
printf("%c\n",letra);
}
return(printf("%c\n",letra));
}


/*Funcion Menor*/

char menor (char car1,char car2,char car3)
{

if (car1<car2 && car1<car3)
{
printf("El menor caracter es:\n %c",car1);
}
if (car2<car1 && car2<car3)
{
printf("El menor caracter es:\n %c",car2);
}
if (car3<car1 && car3<car2)
{
printf("el menor caracer es:\n %c",car3);
}
return(car1,car2,car3);
}
  #2 (permalink)  
Antiguo 20/01/2006, 16:41
Avatar de Mephisto  
Fecha de Ingreso: enero-2006
Ubicación: Mexico DF
Mensajes: 184
Antigüedad: 18 años, 4 meses
Puntos: 3
Primero: todas las funciones definelas como void Funcion(Parametros); no requieres de regresar valore ya que estas imprimiendo tu resultado en la funcion.

Segundo: en el switch, para cada case igualas una variable int con un char
opcion = '1'; la verdad no le veo el caso a esa igualdad.

Tercero: Para cada caso del switch mandas llamar a la fucion menu(), en vez de eso, tienes dos opciones, colocar un do-while para verificar sea pro ejemplo 0 y es cuando acaba o defines int menu (void); y cuando sea el valor 0 le mandas un return para finalizar la ejecución de la funcion...
__________________
Saludos...

Todos somos sabios, solo que en diferentes disciplinas...
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 05:47.