|
|
|
![]() |
|
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 10: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: 08:33.