|
|||||||
|
|
|
![]() |
|
|
Strumenti |
|
|
#1 | |
|
Member
Iscritto dal: Sep 2005
Messaggi: 161
|
Problema in C, HELP ME
Premesso che del C...@school nn abbiamo fatto molto...3settimane max...
mi è stato dato da fare questo problema...: Dato in input il mese e l'anno fornire in output il numero di giorni che compongono il mese. Sto facendolo con DEV-C++ ma nn riesco...mi dice: In function `int main()': 27 non-lvalue in assignment [Build Error] [mese.o] Error 1 Vi prego aiutatemi a capire cosa nn va.... Quote:
|
|
|
|
|
|
|
#2 | |
|
Senior Member
Iscritto dal: Nov 2005
Città: TO
Messaggi: 5206
|
Quote:
A parte il fatto che il tuo sorgente è "C++" e non "C", comunque è tutto sbagliato. Hai dichiarato delle variabili con i nomi dei mesi (e non va bene) e poi hai sbagliato i test negli if e il test dell'anno bisestile non è comunque completo. Ecco il mio sorgente: Codice:
#include <cstring>
#include <iostream>
using namespace std;
char *nomi_mesi[] =
{
"gennaio", "febbraio", "marzo", "aprile", "maggio", "giugno",
"luglio", "agosto", "settembre", "ottobre", "novembre", "dicembre"
};
int giorni_mesi[] = { 31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31 };
int main (void)
{
int anno, mese = -1, i, giorni;
char strmese[20];
cout << "Inserisci il nome del mese con caratteri minuscoli: ";
cin >> strmese;
cout << "Inserisci l'anno: ";
cin >> anno;
for (i=0; i<12; i++)
{
if (strcmp (strmese, nomi_mesi[i]) == 0)
{
mese = i;
break;
}
}
if (mese == -1)
cout << "Nome mese non corretto" << endl;
else
{
giorni = giorni_mesi[mese];
if ((anno%4 == 0 && anno%100 != 0) || anno%400 == 0)
{
/* Anno bisestile */
if (mese == 1)
giorni++;
}
cout << "Il mese " << strmese << " " << anno << " ha " << giorni << " giorni" << endl;
}
return 0;
}
EDIT: ho tolto #include <cstdlib> che in effetti non serve.
__________________
Andrea, SCJP 5 (91%) - SCWCD 5 (94%) Ultima modifica di andbin : 31-01-2006 alle 11:11. |
|
|
|
|
|
|
#3 |
|
Member
Iscritto dal: Sep 2005
Messaggi: 161
|
Grazie mille x il codice...anke x quello cha hai postato sul html.it
xò nn ci hanno spiegato nemmeno "for"....alla fine ho pensato che i mesi nn dovevano necessariamente essere a parole visto che char prende solo la prima lettera(nn lo sapevo)...e infine il codice che ho scritto è questo... Codice:
#include <iostream>
using namespace std;
int mese, anno;
int main(){
cout<<"Inserisci il numero del mese"<<endl;
cin>>mese;
cout<<"Inserisci l'anno"<<endl;
cin>>anno;
if((mese==4)||(mese==6)||(mese==9)||(mese==11))
{
cout<<"Il mese dura 30 giorni"<< endl;
}
if((mese==1)||(mese==3)||(mese==5)||(mese==7)||(mese==8)||(mese==10)||(mese==12))
{
cout<<"Il mese dura 31 giorni"<<endl;
}
if(mese==2)
{
if(anno%4==0)
{
cout<<"Il mese dura 29 giorni"<<endl;
}
else
{
cout<<"Il mese dura 28 giorni"<<endl;
}
}
if(mese>12)
{
cout<<"Non esiste un mese con quel numero"<<endl;
}
system("PAUSE");
return EXIT_SUCCESS;
}
CMQ grazie |
|
|
|
|
| Strumenti | |
|
|
Tutti gli orari sono GMT +1. Ora sono le: 21:55.



















