PDA

Visualizza la versione completa : visualizzare il nome di una stringa


elialongoni04
18-09-2011, 13:42
salve a tutti ......io non sono un genio della programmazione...volevo fare un programma che dica all'utente quale è la città con più abitanti e quella con meno abitanti (il numero di abitanti è inserito dall'utente)...il programma così era banale allora ho pensato che nel risultato finale il programma avrebbe fatto uscire anche il NOME DELLA CITTà inserita....dunque ho girato un po per internet per capire come fare a salvare una stringa ed ecco quello che ho fatto...probabilmente molti di voi si metteranno a ridere per quello che ho scritto, o diranno che sono un incapace :facepalm: .....comunque se potete aiutarmi ve ne sarei grato....


#include<stdio.h>
#include<stdlib.h>
#include<iostream.h>
main()
{
int abitanti,min,max,min1,max1,c;
char citta [50],cittappop [50],cittampop [50];
printf("QUESTO PROGRAMMA TI DIRA' QUALE E' LA CITTA + E - POPOLOSA\n\n");
printf("Inserisci il nome della 1 citta' : ");
cin.getline(citta,50);
printf("\nQuanti abitanti ha questa citta'?? : ");
scanf("%d",&abitanti);
c=1;
min=abitanti;
max=abitanti;
min1=c;
max1=c;
cittappop [50] = citta [50]; //variabile per la citta più popolosa
cittampop [50] = citta [50] ; //variabile per la città meno popolosa
for(c=2;c<=10;c++)
{
printf("\nInserisci il nome della %d citta' : ",c);
while(getchar()!='\n');
cin.getline(citta,50);
printf("\nQuanti abitanti ha questa citta'?? : ");
scanf("%d",&abitanti);
if(abitanti>max)
{
max=abitanti;
max1=c;
cittappop [50] =citta [50];
}
else if(abitanti<min)
{
min=abitanti;
min1=c;
cittampop [50] =citta [50];
}
}
printf("\nLa citta' più popolosa e' %d che hai inserito: e' %c con %d abitanti!\n\n",max1,cittappop,max);
printf("La citta' meno popolosa e' la %d che hai inserito: e' %c con %d abitanti!\n\n",min1,cittampop,min);
system("pause");
}

ramy89
18-09-2011, 14:24
Che errori/comportamenti indesiderati ti da?
Comunque ti consiglio di dichiarare:


string citta,cittappop,cittampop;

E poi usi le normali istruzioni di output/input:


cin>>citta;
cout<<citta;

elialongoni04
18-09-2011, 14:35
Che errori/comportamenti indesiderati ti da?
scusa la mia ignoranza, ma cosa sono questi errori??il programma comunque parte e funziona correttamente solo che alla fine al posto di inserire il nome della città mi mette un simbolo strano....
per dichiarare le variabili in string mi dovresti dire pure la libreria da inserire, altrimenti non viene riconosciuto..
grazie!

clynamen
18-09-2011, 15:08
Originariamente inviato da elialongoni04

per dichiarare le variabili in string mi dovresti dire pure la libreria da inserire, altrimenti non viene riconosciuto..

#include <string>

Inoltre hai mischiato C e C++, non che questo sia illegale, ma visto che stai imparando concentrati solo su un linguaggio.

L'errore sta qui

printf("\nLa citta' più popolosa e' %d che hai inserito: e' %c con %d abitanti!\n\n",max1,cittappop,max);
%c indica un carattere, %s una stringa

elialongoni04
18-09-2011, 15:17
Inoltre hai mischiato C e C++, non che questo sia illegale, ma visto che stai imparando concentrati solo su un linguaggio.

LOL

comunque ho sistemato il %c e infatti ora se faccio un programma che mi visualizza la stringa funziona, però questo no! addirittura l'ultimo printf viene completamente modificato da c++, nel senso che mi inverte le parole!?!?!?
io credo che il mio errore sia qui

cittappop [50] = citta [50];
cittampop [50] = citta [50] ;

e poi qui

if(abitanti>max)
{
cittappop [50] = citta [50];
}

forse questo è un comando che non esiste e me lo sono inventato io?praticamente qui io cerco di dare alla variabile cittappop lo stesso significato della stringa contenuta in citta....

clynamen
18-09-2011, 16:08
Sì, le stringhe non si copiano in quel modo. Prima non ci avevo fatto caso.
devi usare strcpy

elialongoni04
18-09-2011, 18:41
ooo finalmente!! ci ho messo un po a capire come usare strcpy però alla fine sono riuscito a far funzionare questo cazzo di programma!
grazie a tutti!

alka
19-09-2011, 09:23
Originariamente inviato da elialongoni04
ooo finalmente!! ci ho messo un po a capire come usare strcpy però alla fine sono riuscito a far funzionare questo cazzo di programma!


Innanzitutto, evitiamo il turpiloquio e le parolacce gratuite.

Oltre a questo, continui ad aprire discussioni senza specificare il linguaggio nel titolo e senza formattare il codice sorgente.

Sei stato già richiamato in questa sede (http://forum.html.it/forum/showthread.php?s=&postid=13388302#post13388302) per gli stessi motivi.

La prossima volta, chiudo e segnalo il comportamento agli amministratori.

Loading