Notice: This page requires JavaScript to function properly.
Please enable JavaScript in your browser settings or update your browser.
Oppiskele Taulukot ja Rakenteet | Rakennerakenteiden ja Muistin Ymmärtäminen
Practice
Projects
Quizzes & Challenges
Quizzes
Challenges
/
C-Rakenteiden Hallinta

bookTaulukot ja Rakenteet

Rakenteista muodostetun taulukon luominen on täysin samanlaista kuin taulukon luominen muilla tietotyypeillä.

Tällaisten taulukoiden alkioihin pääsee käsiksi samalla tavalla kuin tavallisten taulukoiden alkioihin indeksien avulla.

struct Person {
    char name[50];
    int age;
    double height;
};

struct Person people[2];

Esimerkkinä luodaan rakenne-taulukko, joka tallentaa henkilön tietoja.

main.c

main.c

copy
12345678910111213141516171819202122232425262728293031323334353637
#include <stdio.h> #include <string.h> // structure definition struct Person { char name[50]; int age; double height; }; int main() { // declaring an array of structures struct Person people[3]; strcpy(people[0].name, "Alice"); people[0].age = 25; people[0].height = 1.75; strcpy(people[1].name, "Bob"); people[1].age = 30; people[1].height = 1.80; strcpy(people[2].name, "Charlie"); people[2].age = 35; people[2].height = 1.70; // output information about people from the array for (int i = 0; i < 3; ++i) { printf("Person %d:\n", i + 1); printf("Name: %s\n", people[i].name); printf("Age: %d\n", people[i].age); printf("Height: %.2f\n", people[i].height); printf("\n"); } return 0; }

Jokainen people-taulukon alkio edustaa erillistä Person-rakennetta. Voimme käyttää tietyn henkilön kenttiä taulukon indeksin avulla, esimerkiksi: people[0].name tai people[1].age.

Käymme sitten koko taulukon läpi for-silmukalla ja tulostamme jokaisen henkilön tiedot näytölle.

Rakenteiden taulukoiden avulla voit tallentaa useita saman tyyppisiä olioita yhteen paikkaan ja käyttää niitä helposti indeksin avulla, mikä on erityisen hyödyllistä suurten tietomäärien käsittelyssä.

Tehtävä

Swipe to start coding

Toteuta funktio calculateWarehouseTotal, joka laskee varastossa olevien tuotteiden kokonaisarvon. Jokaisella tuotteella on nimi, määrä ja hinta. Funktion tulee käydä tuotteiden taulukko läpi ja laskea yhteen kaikkien tuotteiden quantity * price -tulokset.

  1. Luo funktion calculateWarehouseTotal sisälle muuttuja total, jonka arvo on aluksi 0.0f.
  2. Käytä for-silmukkaa, joka käy läpi indeksit 0n.
  3. Kerro kunkin tuotteen quantity arvolla price ja lisää tulos muuttujaan total.
  4. Palauta lopuksi muuttujan total arvo varaston kokonaiskustannuksena.

Ratkaisu

Oliko kaikki selvää?

Miten voimme parantaa sitä?

Kiitos palautteestasi!

Osio 3. Luku 4
single

single

Kysy tekoälyä

expand

Kysy tekoälyä

ChatGPT

Kysy mitä tahansa tai kokeile jotakin ehdotetuista kysymyksistä aloittaaksesi keskustelumme

Suggested prompts:

Can you show me how to initialize the array of structures with data?

How do I print all the information for each person in the array?

Can you explain how to modify a specific field in one of the structures?

close

bookTaulukot ja Rakenteet

Pyyhkäise näyttääksesi valikon

Rakenteista muodostetun taulukon luominen on täysin samanlaista kuin taulukon luominen muilla tietotyypeillä.

Tällaisten taulukoiden alkioihin pääsee käsiksi samalla tavalla kuin tavallisten taulukoiden alkioihin indeksien avulla.

struct Person {
    char name[50];
    int age;
    double height;
};

struct Person people[2];

Esimerkkinä luodaan rakenne-taulukko, joka tallentaa henkilön tietoja.

main.c

main.c

copy
12345678910111213141516171819202122232425262728293031323334353637
#include <stdio.h> #include <string.h> // structure definition struct Person { char name[50]; int age; double height; }; int main() { // declaring an array of structures struct Person people[3]; strcpy(people[0].name, "Alice"); people[0].age = 25; people[0].height = 1.75; strcpy(people[1].name, "Bob"); people[1].age = 30; people[1].height = 1.80; strcpy(people[2].name, "Charlie"); people[2].age = 35; people[2].height = 1.70; // output information about people from the array for (int i = 0; i < 3; ++i) { printf("Person %d:\n", i + 1); printf("Name: %s\n", people[i].name); printf("Age: %d\n", people[i].age); printf("Height: %.2f\n", people[i].height); printf("\n"); } return 0; }

Jokainen people-taulukon alkio edustaa erillistä Person-rakennetta. Voimme käyttää tietyn henkilön kenttiä taulukon indeksin avulla, esimerkiksi: people[0].name tai people[1].age.

Käymme sitten koko taulukon läpi for-silmukalla ja tulostamme jokaisen henkilön tiedot näytölle.

Rakenteiden taulukoiden avulla voit tallentaa useita saman tyyppisiä olioita yhteen paikkaan ja käyttää niitä helposti indeksin avulla, mikä on erityisen hyödyllistä suurten tietomäärien käsittelyssä.

Tehtävä

Swipe to start coding

Toteuta funktio calculateWarehouseTotal, joka laskee varastossa olevien tuotteiden kokonaisarvon. Jokaisella tuotteella on nimi, määrä ja hinta. Funktion tulee käydä tuotteiden taulukko läpi ja laskea yhteen kaikkien tuotteiden quantity * price -tulokset.

  1. Luo funktion calculateWarehouseTotal sisälle muuttuja total, jonka arvo on aluksi 0.0f.
  2. Käytä for-silmukkaa, joka käy läpi indeksit 0n.
  3. Kerro kunkin tuotteen quantity arvolla price ja lisää tulos muuttujaan total.
  4. Palauta lopuksi muuttujan total arvo varaston kokonaiskustannuksena.

Ratkaisu

Switch to desktopVaihda työpöytään todellista harjoitusta vartenJatka siitä, missä olet käyttämällä jotakin alla olevista vaihtoehdoista
Oliko kaikki selvää?

Miten voimme parantaa sitä?

Kiitos palautteestasi!

Osio 3. Luku 4
single

single

some-alt