Pegepinde til Structs
C-programmeringssproget giver dig mulighed for at oprette pegere ikke kun til almindelige datatyper men også til strukturer (da en struktur er en brugerdefineret datatype).
Deklaration og initialisering af en peger ser således ud:
struct <name_of_struct>
{
<field_of_struct>;
};
struct <name_of_struct>* <name_of_pointer>;
Hvis <name_of_pointer> er en peger til en struktur,
så er *(<name_of_pointer>) selve strukturen.
For at få adgang til felterne i en struktur gennem en peger, skal du bruge operatoren ->.
-> er en analog til strukturadgangsoperatoren .
main.c
12345678910111213141516171819202122#include <stdio.h> // structure declaration struct Point { int x; int y; }; int main() { // create a structure variable of Point type struct Point p1; p1.x = 10; p1.y = 20; // create a pointer to a structure of type Point and assign it the address of variable p1 struct Point* ptr = &p1; // Access structure members via pointer by `->` operator printf("Coordinates: (%d, %d)\n", ptr->x, ptr->y); return 0; }
Dette program viser, hvordan man arbejder med en Point-struktur, der gemmer to koordinater, x og y. I main-funktionen oprettes en variabel p1 og tildeles koordinatværdier, hvorefter en pointer til denne struktur initialiseres. Ved hjælp af ->-operatoren tilgås strukturens felter gennem pointeren, og programmets udskriver punktets koordinater på skærmen.
Swipe to start coding
Du har en studerende med karakterer i 3 fag: Math, Physics og Programming.
Din opgave er at beregne den studerendes gennemsnitskarakter og afgøre, om vedkommende bestod kurset.
Inde i funktionen calculateAverageAndCheck:
- Tilgå hver fagkarakter ved hjælp af pointeren.
- Læg alle tre karakterer sammen for at finde den samlede score.
- Divider det samlede resultat med
3.0for at beregne gennemsnitskarakteren. - Sammenlign resultatet med beståelsesgrænsen på 60.
- Hvis gennemsnittet er større end eller lig med 60, returnér
true(den studerende bestod). - Ellers returnér
false(den studerende dumpede).
Example
| Math | Physics | Programming | Average | Result |
|---|---|---|---|---|
| 85.0 | 55.0 | 60.0 | 66.67 | ✅ Passed |
| 50.0 | 40.0 | 45.0 | 45.00 | ❌ Failed |
| 60.0 | 60.0 | 60.0 | 60.00 | ✅ Passed |
Løsning
Tak for dine kommentarer!
single
Spørg AI
Spørg AI
Spørg om hvad som helst eller prøv et af de foreslåede spørgsmål for at starte vores chat
Fantastisk!
Completion rate forbedret til 4.35
Pegepinde til Structs
Stryg for at vise menuen
C-programmeringssproget giver dig mulighed for at oprette pegere ikke kun til almindelige datatyper men også til strukturer (da en struktur er en brugerdefineret datatype).
Deklaration og initialisering af en peger ser således ud:
struct <name_of_struct>
{
<field_of_struct>;
};
struct <name_of_struct>* <name_of_pointer>;
Hvis <name_of_pointer> er en peger til en struktur,
så er *(<name_of_pointer>) selve strukturen.
For at få adgang til felterne i en struktur gennem en peger, skal du bruge operatoren ->.
-> er en analog til strukturadgangsoperatoren .
main.c
12345678910111213141516171819202122#include <stdio.h> // structure declaration struct Point { int x; int y; }; int main() { // create a structure variable of Point type struct Point p1; p1.x = 10; p1.y = 20; // create a pointer to a structure of type Point and assign it the address of variable p1 struct Point* ptr = &p1; // Access structure members via pointer by `->` operator printf("Coordinates: (%d, %d)\n", ptr->x, ptr->y); return 0; }
Dette program viser, hvordan man arbejder med en Point-struktur, der gemmer to koordinater, x og y. I main-funktionen oprettes en variabel p1 og tildeles koordinatværdier, hvorefter en pointer til denne struktur initialiseres. Ved hjælp af ->-operatoren tilgås strukturens felter gennem pointeren, og programmets udskriver punktets koordinater på skærmen.
Swipe to start coding
Du har en studerende med karakterer i 3 fag: Math, Physics og Programming.
Din opgave er at beregne den studerendes gennemsnitskarakter og afgøre, om vedkommende bestod kurset.
Inde i funktionen calculateAverageAndCheck:
- Tilgå hver fagkarakter ved hjælp af pointeren.
- Læg alle tre karakterer sammen for at finde den samlede score.
- Divider det samlede resultat med
3.0for at beregne gennemsnitskarakteren. - Sammenlign resultatet med beståelsesgrænsen på 60.
- Hvis gennemsnittet er større end eller lig med 60, returnér
true(den studerende bestod). - Ellers returnér
false(den studerende dumpede).
Example
| Math | Physics | Programming | Average | Result |
|---|---|---|---|---|
| 85.0 | 55.0 | 60.0 | 66.67 | ✅ Passed |
| 50.0 | 40.0 | 45.0 | 45.00 | ❌ Failed |
| 60.0 | 60.0 | 60.0 | 60.00 | ✅ Passed |
Løsning
Tak for dine kommentarer!
single