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);
}
}
Ongelma tietuerakenteen kanssa
4
381
Vastaukset
- ...
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ä.
Luetuimmat keskustelut
- 1077803
Siekkilässä ajettu ihmisten yli- mitä tapahtui? Länsi-Savo ei ole uutisoinut asiata
Manneja, vaiko matuja?1166115- 835207
- 1414573
Alavuden sairaala
Säästääkö Alavuden sairaala sähkössä. Kävin Sunnuntaina vast. otolla. Odotushuone ja käytävä jolla lääkäri otti vastaan113240- 623044
- 582958
Törkeää toimintaa
Todella törkeitä kaheleita niitä on Ylivieskassakin. https://www.ess.fi/uutissuomalainen/8570818102464- 612447
Hei........
Pelkkä sun näkeminen saa mut hymyilemään pitkin iltaa. Oot niin 🤩😘 Edellinen poistettiin.562076