Ongelma tietuerakenteen kanssa

Kaatuillen

Tossa ohessa ohjelmanpätkä, jonka pitäisi luoda itse määrittelemälleni tietotyypille "ihminen" tietuetaulukko. Ohjelman pitäisi tehdä seuraavaa:

- Kysyy käyttäjältä, montako tietoa syötetään (Max 10 kpl)

- Tallentaa noin monta kappaletta tietoja tietuetaulukkoon

Tuo menee kääntäjästä läpi virheittä mutta sitten ohjelma kaatuu. Missä mahtaa olla vika?

#include
#include

#define KOKO 10
#define PITUUS 20

typedef struct
{
   char nimi[PITUUS];
   int vuosii;

}ihminen_t;

int
main(void)
{
   ihminen_t tieto[KOKO];

   int varattu, i;

   /* Syötä tiedot */

   printf("Montako tietoa annetaan > ");
   scanf("%d", & varattu);

   for (i = 0; i < varattu; i)
   {
      printf("\nAnna nimi > ");
      gets("tieto[i].nimi");

      printf("\nAnna ikä > ");
      scanf("%d", & tieto[i].vuosii);
   }


}

4

342

    Vastaukset

    Anonyymi (Kirjaudu / Rekisteröidy)
    5000
    • ...

      gets("tieto[i].nimi") lainausmerkit

      • Kaatuillen

        No niinpäs olikin. Olin ensin kirjoittamassa siihen scanf:ää mutta vaihdoinkin getsiin ja nuo sulut unohtuivat.

        Ohjelmoinnin hienoja puolia... Etsin pitkään ja hartaasti vikaa ja se oli jotain noin pientä. Kiitos paljon avusta! :)


    • teuro

      Edellä tulikin jo kysymykseen ratkaisu. Laitan kuitenkin muokatun version c ja STL vektoreilla toteutettuna.

      #include
      #include
      #include

      using namespace std;

      const int maara = 10;

      class Henkilo{
         private:
            string nimi;
            int vuosi;
         public:
            Henkilo(string n, int v){
               this -> nimi = n;
               this -> vuosi = v;
            }
            
            Henkilo(){}
      };

      vector Henkilot;

      int main(){

      int varattu, i;
      string nimi;
      int vuosi;

      /* Syötä tiedot */

      cout nimi;

      cout vuosi;

      Henkilot.push_back(Henkilo(nimi, vuosi));
      }
      }

      Olkaapa hyvät.

    • adasdasdasdas

      #include
      #include

      typedef struct
      {
      char* nimi;
      int vuosii;

      }ihminen_t;

      int main()
      {
      ihminen_t* tieto;
      int varattu, i;

      /* Syötä tiedot */

      printf("Montako tietoa annetaan > ");
      scanf("%d", &varattu);

      tieto=(ihminen_t*)malloc(varattu*sizeof(ihminen_t));

      for (i = 0; i < varattu; i)
      {
      printf("\nAnna nimi > ");
      gets(tieto[i].nimi);

      printf("\nAnna ikä > ");
      scanf("%d", &tieto[i].vuosii);
      }
      free(tieto);
      return 1;
      }

    Ketjusta on poistettu 0 sääntöjenvastaista viestiä.

    Takaisin ylös

    Luetuimmat keskustelut

    1. Tällä kertaa Marinia kadehtii Minäminä Päivärinta

      Kokoomuksen tyhjäntoimittelija itkeä tuhertaa, kun kansainvälinen superstaramme ei leiki hänen kanssaan. Oikean puoluee
      Maailman menoa
      386
      1492
    2. Minua itkettää tämä tilanne

      Meidän pitäisi jutella. Eikö niin? Miehelle.
      Ikävä
      105
      1278
    3. Miksi koulut pakottavat

      Lapset uimaan sekaryhmänä? Murrosikäiset tunnetusti häpeilevät vartalossa tapahtuvia muutoksia. Tulee turhia poissaoloja
      Maailman menoa
      116
      1210
    4. Miksi jollain jää "talvi päälle"

      Huvittaa kastoa ullkona jotain vahempaa äijää joka pukeutuu edelleen kun olisi +5 astetta lämmittä vaikka on helle keli
      Maailman menoa
      162
      1113
    5. Mitkä oli suurimmat

      Syyt mihin hänessä ihastuit alussa ja pikkuhiljaa tunteiden edetessä
      Ikävä
      44
      987
    6. Minulla oli tunteita

      Tein itsestäni pellen. Sait hyvät naurut ja minä 💔
      Ikävä
      63
      896
    7. Se katse silloin

      Oli hetki, jolloin katseemme kohtasivat. Oli talvi vielä. Kerta toisensa jälkeen palaan tuohon jaettuun katseeseen. Tunt
      Ikävä
      32
      816
    8. Suomen Pallolitto: Tasoryhmät lasten jalkapallossa - Erätauko-tilaisuus ma 20.5.2024

      Tasoryhmät lasten ja nuorten jalkapallossa herättävät paljon keskustelua. Mitä tasoryhmät ovat ja mikä on niiden tarkoit
      Suomi24 Blogi ★
      0
      800
    9. Susanne Päivärinta kirjassaan: Sannalla nousi valta päähän, Big Time!

      Päivärinta toteaa ettei ole nähnyt kenenkään muuttuvan niin totaalisesti kuin Marinin, eikä siis todellakaan parempaan s
      Maailman menoa
      91
      794
    10. Tuhdit oluet kauppoihin. Miksi vastustaa?

      8% oluet kauppoihin mutta mikä siinä on että osa politikoista vstustaa ? Kauppa kuitenkin hinnoittelee vahvan oluen ni
      Maailman menoa
      167
      681
    Aihe