| Ver tema anterior :: Ver siguiente tema | | Autor | Mensaje |
|---|
hansolo
Registrado: 04 Oct 2004 Mensajes: 16
| Publicado: 08/10/2004 7:20 am | | | Título: Programa calendario |
| Problemas de parametros???? 
#include <stdio.h> #include <stdlib.h>
int main() {
int diaany,mes,dia,diesmes,diesanteriors; bool trobat,forarang; void diespassats(int mes,int diesmes);
scanf("%d",&diaany); mes=1; diesmes=0; diesanteriors=0; trobat=false; forarang=(diaany <= 0);
while ((!trobat)&&(!forarang)) {
diesanteriors=diesmes; diespassats(mes,diesmes); trobat=diaany <= diesmes;
if (!trobat) { mes=mes+1; } forarang=(mes > 12); } if (trobat) { dia=(diaany-diesanteriors); dia=scanf("%d",&dia); printf("/"); mes=scanf("%d",&mes); }else printf("N"); }
void diespassats(int mes,int *diesmes) aquí me falla el parametro y no se como solucionarlo { if(mes==1){ diesmes=31; }else if (mes==2) { diesmes=59; } else if (mes==3) { diesmes=90; } else if (mes==4) { diesmes=120; } else if (mes==5) { diesmes=151; } else if (mes==6) { diesmes=181; } else if (mes==7) { diesmes=212; } else if (mes== { diesmes=243; } else if (mes==9) { diesmes=273; } else if (mes==10) { diesmes=304; } else if (mes==11) { diesmes=334; } else diesmes=365; } |
| | Volver arriba | |  | rir3760

Registrado: 01 Oct 2004 Mensajes: 7527 Ubicación: Mexico
| Publicado: 08/10/2004 2:44 pm | | | Título: |
| Si entiendo bien lo que quieres hacer entonces primero cambia el prototipo de 'diespassats' a:
void diespassats(int mes,int *diesmes);
Despues en el ciclo while cambia la llamada a 'diespassats' para pasar la direccion de diesmes (usando el operador '&'):
diespassats(mes, &diesmes);
Finalmente en la definicion de 'diespassats' usa indireccion (operador '*'):
void diespassats(int mes,int *diesmes){ if(mes==1){ *diesmes=31; }else if (mes==2) { *diesmes=59; } else if (mes==3) { *diesmes=90; /* etc */ }
Por otra parte seria mejor que cambiaras la funcion en dos areas:
1) En lugar de retornar void seria mejor que retornara el valor de 'diesmes' y asi te evitas tratar con punteros.
2) Para calcular el numero de dias seria mejor usar un arreglo y un ciclo for.
Saludos |
| | Volver arriba | |  | | |
| No puede crear mensajes No puede responder temas No puede editar sus mensajes No puede borrar sus mensajes No puede votar en encuestas
|
|
| |