| 
 | |||||||
| 
 | 
|  | 
|  | 
|  | Strumenti | 
|  15-10-2003, 20:56 | #1 | 
| Junior Member Iscritto dal: Dec 2001 
					Messaggi: 14
				 | 
				
				mi serve un aiutino sul C
			 
		Ciao a tutti Sto studiano C e sono alle prime armi. Ho così scritto per allenarmi questo semlice programmino #include <stdio.h> main() { int annasc, etat; printf("inscerisci il tuo anno di nascita e premi invio \n"); scanf("%d", &annasc); etat = 2003 - annasc; etat > 40 ? printf("hai superato gli anta, avendo %d anni \n", etat) : ("Hai ancora parecchi anni di vita davanti a te, avendo solo %d anni /n", etat); } Come potete vedere qualcosa non va. + Precisamente io volevo che a seconda dell' eta di una persona venisse visualizzato un messaggio differente. Come posso fare visto che così non va? Help Ciao 
				__________________ _______________ | 
|   |   | 
|  15-10-2003, 21:06 | #2 | 
| Junior Member Iscritto dal: Oct 2003 Città: Palermo 
					Messaggi: 9
				 | 
		puoi usare switch in questo modo: Codice: #include <stdio.h> 
main() 
{ 
int annasc, etat; 
printf("inscerisci il tuo anno di nascita e premi invio \n"); 
scanf("%d", &annasc); 
etat = 2003 - annasc;
switch (etat) {
case 'etat > 60':
printf("A mazza quanto sei vecchio!\n);
break;
case 'etat > 50':
printf("Sei nel mezzo del cammin della tua vita...\n");
break;
case 'etat >20':
printf("Sei ancora giovanissimo!, hai l'intera vita d'avanti\n");
break; 
}
return 0;
}
				__________________ "Per ogni sistema formale di regole ed assiomi è possibile arrivare a proposizioni indecidibili, usando gli assiomi dello stesso sistema formale" Kurt Godel | 
|   |   | 
|  15-10-2003, 21:22 | #3 | 
| Senior Member Iscritto dal: Jun 2003 Città: Ferrara 
					Messaggi: 5950
				 | 
		Grazie mille Ma mi puoi spiegare perchè come ho scritto io non va? E cosa vuol dire break? Puoi spiegarmi brevemente come hai fatto tu? 
				__________________ Ho fatto affati con.... troppi  Usate la ricerca sul forum... Penso un centinaio almeno | 
|   |   | 
|  15-10-2003, 22:23 | #4 | |
| Senior Member Iscritto dal: Sep 2001 Città: Roma 
					Messaggi: 1944
				 | Quote: 
 quello che hai fatto tu sembra corretto prova a mettere l'if invece che il ?.... tipo if (eta>40) printf(".....") else printf("...")   
				__________________ "Oggi è una di quelle giornate in cui il sole sorge veramente per umiliarti" Chuck Palahniuk Io c'ero | |
|   |   | 
|  15-10-2003, 23:18 | #5 | |
| Senior Member Iscritto dal: Apr 2000 Città: Vicino a Montecatini(Pistoia) Moto:Kawasaki Ninja ZX-9R Scudetti: 29 
					Messaggi: 53971
				 | Quote: 
  Codice: switch(espressione)
{
case valore1:
   statement;
case valore1:
   statement;
....
case valoreN:
   statement;
default:
   statement;
} | |
|   |   | 
|  15-10-2003, 23:29 | #6 | |
| Junior Member Iscritto dal: Oct 2003 Città: Palermo 
					Messaggi: 9
				 | Quote: 
 
				__________________ "Per ogni sistema formale di regole ed assiomi è possibile arrivare a proposizioni indecidibili, usando gli assiomi dello stesso sistema formale" Kurt Godel | |
|   |   | 
|  16-10-2003, 00:28 | #7 | 
| Senior Member Iscritto dal: Apr 2000 Città: Vicino a Montecatini(Pistoia) Moto:Kawasaki Ninja ZX-9R Scudetti: 29 
					Messaggi: 53971
				 | Codice: int a;
scanf("%d", &a)
switch(a)
{
case 2:
   printf("Hai inserito due, stamperò anche uno");
case 1:
   printf("Hai inserito uno");
   break;
case 3:
   printf("Hai inserito tre");
   break;
default:
   printf("Hai inserito un numero diverso da uno, due e tre");
   break;
} | 
|   |   | 
|  16-10-2003, 07:17 | #8 | 
| Senior Member Iscritto dal: Apr 2002 Città: Vigevano(PV) 
					Messaggi: 2124
				 | Codice: #include <stdio.h>
main()
{
	int annasc, etat;
	printf("inscerisci il tuo anno di nascita e premi invio \n");
	scanf("%d", &annasc);
	etat = 2003 - annasc;
	char *msg =  (etat > 40) ? printf("hai superato gli anta, avendo %d anni \n", etat) : ("Hai ancora parecchi anni di vita davanti a te, avendo solo %d anni /n", etat);
        printf("%s", msg);
}Ultima modifica di Luc@s : 16-10-2003 alle 15:33. | 
|   |   | 
|  16-10-2003, 09:08 | #9 | 
| Senior Member Iscritto dal: Apr 2000 Città: Vicino a Montecatini(Pistoia) Moto:Kawasaki Ninja ZX-9R Scudetti: 29 
					Messaggi: 53971
				 | 
		Grande Luc@s   Comunque non importava l'assegnazione a char *msg e ti manca un printf sulla stringa in fondo... Comunque è più semplice così: Codice: #include <stdio.h>
main()
{
	int annasc, etat;
	printf("inscerisci il tuo anno di nascita e premi invio \n");
	scanf("%d", &annasc);
	etat = 2003 - annasc;
	printf((etat > 40) ? "hai superato gli anta, avendo %d anni \n" : "Hai ancora parecchi anni di vita davanti a te, avendo solo %d anni \n", etat);
} | 
|   |   | 
|  16-10-2003, 15:32 | #10 | |
| Senior Member Iscritto dal: Apr 2002 Città: Vigevano(PV) 
					Messaggi: 2124
				 | Quote: 
 Cmq sto rivedendo l' I/O del C e penso che utilizzero quello anche in C++...............faccio male??? | |
|   |   | 
|  16-10-2003, 15:40 | #11 | 
| Senior Member Iscritto dal: Apr 2000 Città: Vicino a Montecatini(Pistoia) Moto:Kawasaki Ninja ZX-9R Scudetti: 29 
					Messaggi: 53971
				 | 
		Ovviamente sì   Ci sono motle cose utili nell'I/O del C++...utili soprattutto con le classi... Ad esempio tante volte mi è servito ridefinire l'operatore <<... Certo in molte situazioni l'I/O del C è comodo, ma è meglio avere pazienza in quelle situazioni e abituarsi a quello del C++ (io ci ho messo tanto per abituarmi)... | 
|   |   | 
|  16-10-2003, 15:42 | #12 | 
| Senior Member Iscritto dal: Apr 2002 Città: Vigevano(PV) 
					Messaggi: 2124
				 | 
		Ma il maximo che ho fatto è stato questo: Codice: #include <iostream>
#include <fstream>
#include <cstdio>
#include <cstring>
#define MAX_BUF 2048
#define SUCCES 0
#define ER -1
using namespace std;
int copy(char src, char dst);
int main(int argc, char *argv[])
{ 
  char buf;
  ifstream in_file;
  ofstream out_file;
  in_file.open(argv[1]); 
  out_file.open(argv[2]);
  while((!in_file.eof()) && (in_file.get(buf))){
    out_file.put(buf);
  } 
  system("PAUSE");
  return SUCCES;
} | 
|   |   | 
|  16-10-2003, 15:45 | #13 | |
| Senior Member Iscritto dal: Apr 2000 Città: Vicino a Montecatini(Pistoia) Moto:Kawasaki Ninja ZX-9R Scudetti: 29 
					Messaggi: 53971
				 | Quote: 
 | |
|   |   | 
|  16-10-2003, 15:47 | #14 | |
| Senior Member Iscritto dal: Apr 2002 Città: Vigevano(PV) 
					Messaggi: 2124
				 | Quote: 
   | |
|   |   | 
|  16-10-2003, 15:47 | #15 | 
| Senior Member Iscritto dal: Apr 2000 Città: Vicino a Montecatini(Pistoia) Moto:Kawasaki Ninja ZX-9R Scudetti: 29 
					Messaggi: 53971
				 | 
		Prova a fare una classe che gestisce un albero e stampane l'output facendo l'overloading del'operatore <<... E' interessante...
		 | 
|   |   | 
|  16-10-2003, 16:38 | #16 | |
| Senior Member Iscritto dal: Apr 2002 Città: Vigevano(PV) 
					Messaggi: 2124
				 | Quote: 
   | |
|   |   | 
|  16-10-2003, 16:43 | #17 | |
| Senior Member Iscritto dal: Apr 2000 Città: Vicino a Montecatini(Pistoia) Moto:Kawasaki Ninja ZX-9R Scudetti: 29 
					Messaggi: 53971
				 | Quote: 
 | |
|   |   | 
|  16-10-2003, 16:43 | #18 | |
| Senior Member Iscritto dal: Apr 2002 Città: Vigevano(PV) 
					Messaggi: 2124
				 | Quote: 
 | |
|   |   | 
|  16-10-2003, 16:56 | #19 | 
| Senior Member Iscritto dal: Apr 2000 Città: Vicino a Montecatini(Pistoia) Moto:Kawasaki Ninja ZX-9R Scudetti: 29 
					Messaggi: 53971
				 | 
		Magari in un altro thread...
		 | 
|   |   | 
|   | 
| Strumenti | |
| 
 | 
 | 
Tutti gli orari sono GMT +1. Ora sono le: 18:49.









 
		 
		 
		 
		









 
  
 



 
                        
                        










