Programma di statistica

di il
10 risposte

Programma di statistica

Buongiorno a tutti, ho fatto questo programma che faccia inserire all'utente nome, cognome, sesso e anno di nascita. Deve restituire inoltre quanti maggiorenni e maschi ci sono secondo quanto inserito dall'utente. Ora, non essendo ancora molto pratico col C#, chiedevo un aiuto perché il programma non mi riesce. Cosa c'è di sbagliato? Vi posto il codice:


using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace Programma_di_statistica
{
class Program
{
static void Main(string[] args)
{
int z,i,cont = 0,pont = 0;
string[,] nomi = new string[50,50];
string[,] cognomi = new string[50,50];
string[,] sesso = new string[50,50];
int[] anno = new int[50];

do
{
Console.WriteLine("\nDi quante persone vuoi inserire i dati: ");
z = Console.Read();
} while ((z<0) || (z>50));

for (i = 0; i < z; i++)
{
Console.WriteLine("\nInserisci il nome: ");
nomi[i,0] = Console.ReadLine();

Console.WriteLine("\nInserisci il cognome: ");
cognomi[i,0] = Console.ReadLine();

Console.WriteLine("\nInserisci il sesso: ");
sesso[i,0] = Console.ReadLine();

Console.WriteLine("\nInserisci l'anno di nascita: ");
anno = Console.Read();
}

for (i = 0; i < z; i++)
{
if (2016-anno>18)
cont++;
}

for (i = 0; i < z; i++)
{
if((sesso[i,0] =="Maschio")||(sesso[i,0] == "maschio"))
pont++;
}

Console.WriteLine("\nIn base a quanto inserito dall'utente ci sono {0} maggiorenni e {1} maschi.",cont, pont);

}
}
}


Grazie in anticipo a chiunque mi aiuterà.

10 Risposte

  • Re: Programma di statistica

    Intanto perché usi delle matrici? Come ti ho già detto in c# esistono le stringhe.

    Poi per il sesso usa un solo carattere

    Per il resto devi essere più preciso sul problema che hai
  • Re: Programma di statistica

    Grazie mille!!
  • Re: Programma di statistica

    Come faccio a convertire una stringa in carattere?
  • Re: Programma di statistica

    Non fare conversioni usa i char dove servono

    Studia le basi sui libri, non buttarti senza preparazione minima
  • Re: Programma di statistica

    L'ho corretto in questo modo, ora funziona:


    using System;
    using System.Collections.Generic;
    using System.Linq;
    using System.Text;
    using System.Threading.Tasks;

    namespace Programma_di_statistica
    {
    class Program
    {
    static void Main()
    {
    int cont = 0,pont = 0;
    string[] nomi = new string[50];
    string[] cognomi = new string[50];
    char sesso = '0';
    int[] anno = new int[50];


    int z;
    do
    {
    Console.WriteLine("\nDi quante persone vuoi inserire i dati: ");
    z = Convert.ToInt32(Console.ReadLine());
    } while ((z<0) || (z>50));


    int i = 0;
    for (i = 0; i < z; i++)
    {
    Console.WriteLine("\nInserisci il nome: ");
    nomi = Console.ReadLine();

    Console.WriteLine("\nInserisci il cognome: ");
    cognomi = Console.ReadLine();

    Console.WriteLine("\nInserisci il sesso: ");
    sesso = Convert.ToChar(Console.ReadLine());

    Console.WriteLine("\nInserisci l'anno di nascita: ");
    anno = Convert.ToInt32(Console.ReadLine());
    }

    for (i = 0; i < z; i++)
    {
    if (2016-anno>=18)
    cont++;
    }

    for (i = 0; i < z; i++)
    {
    if((sesso == 'M')||(sesso == 'm'))
    pont++;
    }

    Console.WriteLine("\nIn base a quanto inserito dall'utente ci sono {0} maggiorenni e {1} maschi.",cont, pont);
    Console.ReadLine();
    }
    }
    }
  • Re: Programma di statistica

    Ottimizza, usa una sola for dato che sono uguali
    
    for (i = 0; i < z; i++)
    {
      if (2016-anno[i]>=18) cont++;
      if((sesso == 'M')||(sesso == 'm')) pont++;
    }
    
    addirittura anche nella stessa for dell'input !
  • Re: Programma di statistica

    Grazie non ci avevo pensato!!
  • Re: Programma di statistica

    Scusate, visto che ora voglio fare lo stesso programma ma con le classi, come potrei fare?
    Ho pensato di creare una classe Person ma non so come fare.
  • Re: Programma di statistica

    Probabilmente ti manca la parte teorica. Non si scrive codice senza aver studiato la teoria. E comunque è un altro problema e non dovresti usare lo stesso thread...
  • Re: Programma di statistica

    Ok mi sa che prima devo studiarmi un po di teoria!!
Devi accedere o registrarti per scrivere nel forum
10 risposte