Problema di inserimento CASE in switch

di Anonimizzato31800 il
25 risposte
Salve a tutti sto cercando di compilare un codice nel quale il case voglio che contenga sia un numero sia una parola ma non capisco come fare, ogni volta mi riporta un errore "[Warning] character constant too long for its type"



#include<iostream>
 using namespace std;
 int main(){
 
 	float somma=0.0;
	 float media=0.0;
 	char mese;
 	float temp[31];

	
	cout<<"Di quale mese vuoi inserire le temperature? ";
	cin>>mese;
	
    switch(mese){
	
	case '1'||'Gennaio':


	for (int i=0;i<31;i++){
	
	cout<<" inserisci temperatura: "<<endl;
	cin>>temp[i];
}
	break;
		case 2:
		for (int i=0;i<28;i++){
		cout<<"Inserisci temperatura: ";
		cin>>temp[i];
		}
		break;

25 Risposte

  • In codice mettilo nel tag code.
    Nel case puoi mettere solo interi o singoli caratteri, non stringhe.
  • Per cominciare, quando posti del codice nel forum usa i tag CODE o non si capisce molto.

    In secondo luogo, ci sono parecchi errori.

    1) non puoi usare stringhe nei case ma solo valori integrali (interi, char, enumerazioni), ripassa la sintassi dello switch case ... quello che vuoi fare è impossibile

    2) la stringa "Gennaio" non potrà mai essere contenuta in una variabile char

    3) non puoi usare l'operatore | in quel modo
  • Ok magari è impossibile. Ma se volessi fare che quando l'utente sceglie il numero 1 (ossia Gennaio) o scrive Gennaio, il programma intende tali risposte primo caso ? COme posso??? Utilizzando queste funzioni?
  • Purtroppo non c'è altro modo che usare if... else if.
    O altrimenti chiedere all'utente il mese solo in formato numerico.
  • Alexv ha scritto:


    Purtroppo non c'è altro modo che usare if... else if.
    O altrimenti chiedere all'utente il mese solo in formato numerico.
    Come sarebbe con if ed else? esempio?
  • Non conosci if e else?
  • Alexv ha scritto:


    Non conosci if e else?
    conosco, ma vorrei un esempio in questo caso
  • Ma perché non provi tu a scrivere qualcosa in base al suggerimento al posto di attendere la pappa pronta?
  • oregon ha scritto:


    Ma perché non provi tu a scrivere qualcosa in base al suggerimento al posto di attendere la pappa pronta?

    Grazie dell'aiuto. Ho provato la "pappa" con if e non va, l'unica soluzione che mi viene è di fare 36 casi specificando un caso per Gennaio, uno per gennaio e così via
  • Con l'or ne bastano meno di if. Più di un mese hanno 31 o 30 giorni.
  • MrMind6767 ha scritto:


    oregon ha scritto:


    Ma perché non provi tu a scrivere qualcosa in base al suggerimento al posto di attendere la pappa pronta?

    Grazie dell'aiuto. Ho provato la "pappa" con if e non va, l'unica soluzione che mi viene è di fare 36 casi specificando un caso per Gennaio, uno per gennaio e così via
    Intanto prova a scrivere qualcosa con la if per Gennaio e poi vediamo ....
  • oregon ha scritto:


    MrMind6767 ha scritto:


    oregon ha scritto:


    Ma perché non provi tu a scrivere qualcosa in base al suggerimento al posto di attendere la pappa pronta?

    Grazie dell'aiuto. Ho provato la "pappa" con if e non va, l'unica soluzione che mi viene è di fare 36 casi specificando un caso per Gennaio, uno per gennaio e così via
    Intanto prova a scrivere qualcosa con la if per Gennaio e poi vediamo ....
    Ho specificato che ho già usato if e non va. Non mi viene nulla in mente che possa dare come risultato ciò che voglio
  • Ma che vuol dire "non va"

    Se mese è una stringa, cosa non va in

    if(mese == "Gennaio")
  • Posta il codice, anche per solo un mese.
Devi accedere o registrarti per scrivere nel forum
25 risposte