{"id":7917,"date":"2023-01-02T18:17:10","date_gmt":"2023-01-02T16:17:10","guid":{"rendered":"https:\/\/blue.pri.ee\/ttu\/?page_id=7917"},"modified":"2026-01-26T17:04:55","modified_gmt":"2026-01-26T15:04:55","slug":"struktuuride-massiivi-naide","status":"publish","type":"page","link":"https:\/\/blue.pri.ee\/ttu\/programmeerimine-ii\/koodinaited\/struktuuride-massiivi-naide\/","title":{"rendered":"Struktuuride massiivi n\u00e4ide"},"content":{"rendered":"<p>J\u00e4rgnev n\u00e4ide on k\u00f5ige lihtsam versioon kasutamaks struktuuridest koosnevaid massiive. N\u00e4ides ei ole otsesel kujul kasutatud viitasid. Struktuuri liikmete poole p\u00f6\u00f6rdumiseks kasutame punkt-operaatorit.<\/p>\n<pre class=\"lang:c decode:true \">\/**\r\n * File:        struct_students.c\r\n * Author:      Risto Heinsar\r\n * Created:     10.01.2021\r\n * Last edit:   26.01.2026\r\n *\r\n * Description: Collects student data and finds the best student. Assumes\r\n *              there can only be one best student.\r\n *              \r\n *              Compile using --std=c99 or later.\r\n *\/\r\n#include &lt;stdio.h&gt;\r\n#include &lt;stdlib.h&gt;\r\n\r\n#define LEN_NAME 32\r\n#define MAX_STUDENTS 8\r\n\r\nstruct Student\r\n{\r\n    char name[LEN_NAME];\r\n    float avgGrade;\r\n};\r\n\r\nint GetStudentCount(int min, int max);\r\nvoid ReadStudents(struct Student pupils[], int n);\r\nint GetBestStudentIndex(struct Student pupils[], int n);\r\n\r\nint main(void)\r\n{\r\n    struct Student students[MAX_STUDENTS];\r\n\r\n    \/* Get the number of students and store it into memory *\/\r\n    int numOfStudents = GetStudentCount(1, MAX_STUDENTS);\r\n    ReadStudents(students, numOfStudents);\r\n    \r\n    \/* Get the best sudent ID *\/\r\n    int bestStudentId = GetBestStudentIndex(students, numOfStudents);\r\n\r\n    printf(\"The best student is: %s with a grade of %.2f\\n\",\r\n                                           students[bestStudentId].name, \r\n                                           students[bestStudentId].avgGrade);\r\n    return EXIT_SUCCESS;\r\n}\r\n\r\n\/**\r\n * Description: Reads the number of students, loops until input within allowed\r\n *              range.\r\n * \r\n * Parameters:  min - lower bound, inclusive\r\n *              max - upper bound, inclusive\r\n * \r\n * Return:      -\r\n *\/\r\nint GetStudentCount(int min, int max)\r\n{\r\n    int num;\r\n    do\r\n    {\r\n        printf(\"Enter number of students (%d .. %d): \", min, max);\r\n        scanf(\"%d\", &amp;num);\r\n    }\r\n    while (num &lt; min || num &gt; max);\r\n    return num;\r\n}\r\n\r\n\/**\r\n * Description: Reads students information (name, grade)\r\n * \r\n * Parameters:  pupils - student array to be populated\r\n *              n - number of students\r\n * \r\n * Return:      -\r\n *\/\r\nvoid ReadStudents(struct Student pupils[], int n)\r\n{\r\n    for (int i = 0; i &lt; n; i++)\r\n    {\r\n        printf(\"Enter student's name and average grade (%d \/ %d)\\n\", i + 1, n);\r\n        scanf(\"%s %f\", pupils[i].name, &amp;pupils[i].avgGrade);\r\n    }\r\n}\r\n\r\n\/**\r\n * Description: Find the index of the student with the highest grade. Assumes\r\n *              only one maximum. \r\n * \r\n * Parameters:  pupils - student array to be populated\r\n *              n - number of students\r\n * \r\n * Return:      index of the student with the highest grade\r\n *\/\r\nint GetBestStudentIndex(struct Student pupils[], int n)\r\n{\r\n    int bestId = 0;\r\n    for (int i = 1; i &lt; n; i++)\r\n    {\r\n        if (pupils[bestId].avgGrade &lt; pupils[i].avgGrade)\r\n        {\r\n            bestId = i;\r\n        }\r\n    }\r\n    return bestId;\r\n}\r\n<\/pre>\n<p>&nbsp;<\/p>\n","protected":false},"excerpt":{"rendered":"<p>J\u00e4rgnev n\u00e4ide on k\u00f5ige lihtsam versioon kasutamaks struktuuridest koosnevaid massiive. N\u00e4ides ei ole otsesel kujul kasutatud viitasid. Struktuuri liikmete poole p\u00f6\u00f6rdumiseks kasutame punkt-operaatorit. \/** * File: struct_students.c * Author: Risto Heinsar * Created: 10.01.2021 * Last edit: 26.01.2026 * * Description: Collects student data and finds the best student. Assumes * there can only be &hellip; <a href=\"https:\/\/blue.pri.ee\/ttu\/programmeerimine-ii\/koodinaited\/struktuuride-massiivi-naide\/\" class=\"more-link\">Loe edasi <span class=\"screen-reader-text\">Struktuuride massiivi n\u00e4ide<\/span> <span class=\"meta-nav\">&rarr;<\/span><\/a><\/p>\n","protected":false},"author":1,"featured_media":0,"parent":684,"menu_order":3,"comment_status":"closed","ping_status":"closed","template":"page-templates\/code-width-wide.php","meta":{"footnotes":""},"class_list":["post-7917","page","type-page","status-publish","hentry"],"_links":{"self":[{"href":"https:\/\/blue.pri.ee\/ttu\/wp-json\/wp\/v2\/pages\/7917","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/blue.pri.ee\/ttu\/wp-json\/wp\/v2\/pages"}],"about":[{"href":"https:\/\/blue.pri.ee\/ttu\/wp-json\/wp\/v2\/types\/page"}],"author":[{"embeddable":true,"href":"https:\/\/blue.pri.ee\/ttu\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/blue.pri.ee\/ttu\/wp-json\/wp\/v2\/comments?post=7917"}],"version-history":[{"count":5,"href":"https:\/\/blue.pri.ee\/ttu\/wp-json\/wp\/v2\/pages\/7917\/revisions"}],"predecessor-version":[{"id":11157,"href":"https:\/\/blue.pri.ee\/ttu\/wp-json\/wp\/v2\/pages\/7917\/revisions\/11157"}],"up":[{"embeddable":true,"href":"https:\/\/blue.pri.ee\/ttu\/wp-json\/wp\/v2\/pages\/684"}],"wp:attachment":[{"href":"https:\/\/blue.pri.ee\/ttu\/wp-json\/wp\/v2\/media?parent=7917"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}