
Duda de novato con sentencia FOR
Publicado por Ignacio (5 intervenciones) el 25/11/2014 20:46:49
Buenas tardes/noches a todos ,
Me llamo Ignacio y soy nuevo en este foro y en la programación en general (pero le estoy poniendo muchas ganas jejeje).Actualmente sigo un curso de C de Nacho Cabanes (excelente de momento he de decir) encontrado en esta página y en uno de los ejercicios que propone me asaltan las dudas .Se trata de hacer un programa que diga los dia que faltan hasta final de año a partir de una fecha dada .Se me ha ocurrido este código :
// Programa para saber cuantos dias
// hasta fin de año a partir de una fecha dada
#include <stdio.h>
int main()
{
int mes[12]={31,28,31,30,31,30,31,31,30,31,30,31};
int dia[31];
int diasFin; // Variable para almacenar los dias hasta fin de año
int diasMF; // Variable para almacenar los dias de los meses faltantes hasta fin de año
int i;
printf("Introduce numero de mes (1=Enero,2=Febrero...) : ");
scanf("%d",&mes);
printf("\nIntroduce numero de dia del mes (Del 1 al 31) : ");
scanf("%d",&dia);
diasMF=0;
for (i=mes;i<=12;i++)
{
diasMF+=mes[i];
}
diasFin=((31-dia)+(365-diasMF));
printf("\nLos dias que faltan hasta Nochevieja son %d \n ",diasFin);
return 0;
}
Pero al compilar me da un error en la linea "diasFin=((31-dia)+(365-diasMF));" que dice lo siguiente :
*****error: invalid operands to binary - (have 'int' and 'int *')|*****
Entiendo que no se puede hacer la resta 31-dia ,pero no se me ocurre por qué .Y si borro dicha resta para ver si el resto está bien ,el programa compila y se ejecuta pero siempre dice que faltan 365 dias ,ponga el valor que ponga por lo que me imagino que la parte de la sentencia "for" también está mal.
Si alguien me pudiera iluminar un poco se lo agradeceré eternamente.
Saludos.
Me llamo Ignacio y soy nuevo en este foro y en la programación en general (pero le estoy poniendo muchas ganas jejeje).Actualmente sigo un curso de C de Nacho Cabanes (excelente de momento he de decir) encontrado en esta página y en uno de los ejercicios que propone me asaltan las dudas .Se trata de hacer un programa que diga los dia que faltan hasta final de año a partir de una fecha dada .Se me ha ocurrido este código :
// Programa para saber cuantos dias
// hasta fin de año a partir de una fecha dada
#include <stdio.h>
int main()
{
int mes[12]={31,28,31,30,31,30,31,31,30,31,30,31};
int dia[31];
int diasFin; // Variable para almacenar los dias hasta fin de año
int diasMF; // Variable para almacenar los dias de los meses faltantes hasta fin de año
int i;
printf("Introduce numero de mes (1=Enero,2=Febrero...) : ");
scanf("%d",&mes);
printf("\nIntroduce numero de dia del mes (Del 1 al 31) : ");
scanf("%d",&dia);
diasMF=0;
for (i=mes;i<=12;i++)
{
diasMF+=mes[i];
}
diasFin=((31-dia)+(365-diasMF));
printf("\nLos dias que faltan hasta Nochevieja son %d \n ",diasFin);
return 0;
}
Pero al compilar me da un error en la linea "diasFin=((31-dia)+(365-diasMF));" que dice lo siguiente :
*****error: invalid operands to binary - (have 'int' and 'int *')|*****
Entiendo que no se puede hacer la resta 31-dia ,pero no se me ocurre por qué .Y si borro dicha resta para ver si el resto está bien ,el programa compila y se ejecuta pero siempre dice que faltan 365 dias ,ponga el valor que ponga por lo que me imagino que la parte de la sentencia "for" también está mal.
Si alguien me pudiera iluminar un poco se lo agradeceré eternamente.
Saludos.
Valora esta pregunta


0