Strukturen an Funktionen Übergeben
Funktionen können mit Strukturen genauso arbeiten wie mit regulären Variablen:
main.c
123456789101112131415161718192021#include <stdio.h> // structure definition typedef struct { char name[50]; } Person; // function to display information about a person void printPerson(Person p) { printf("Name: %s\n", p.name); } int main() { // creating a structure and initializing its values Person person1 = {"John"}; // call a function to display information about a person printPerson(person1); return 0; }
Damit eine Funktion mit einer Struktur "interagieren" kann, beispielsweise um die Felder einer bestehenden Struktur zu ändern, muss die Funktion einen Zeiger auf die Struktur akzeptieren:
main.c
12345678910111213141516171819202122232425262728293031#include <stdio.h> // structure definition typedef struct { char symbol; }Example; // function for changing the values of structure fields via a pointer void changePoint(Example* ptr, int newSymbol) { // check for NULL pointer if (ptr != NULL) { ptr->symbol = newSymbol; } } int main() { // create the Example structure and a pointer Example ptr1 = {'H'}; Example* ptr = &ptr1; printf("Old symbol: %c | %p\n", ptr1.symbol, &ptr1); // use function to change the field of structures changePoint(ptr, 'y'); printf("New symbol: %c | %p\n", ptr1.symbol, &ptr1); return 0; }
Strukturen können innerhalb von Funktionen erstellt werden, und solche Strukturen können auch außerhalb der Funktionen "existieren" (nicht lokal), wenn die Funktion einen Zeiger auf eine solche Struktur zurückgibt:
main.c
1234567891011121314151617181920212223242526272829303132#include <stdio.h> #include <stdlib.h> // structure definition typedef struct { int value; }Example; // function creates a structure with the given field Example* CreateStruct(int setVal) { Example* ptr = (Example*)malloc(sizeof(Example)); // check for successful memory allocation if (ptr != NULL) { ptr->value = setVal; } return ptr; } int main() { // use function to create structure Example* ptrToStruct = CreateStruct(23); printf("Value inside struct: %d", ptrToStruct->value); free(ptrToStruct); // free memory return 0; }
Swipe to start coding
Sie verwalten ein kleines Team von drei Mitarbeitenden, wobei jede Person einen Stundenlohn und eine bestimmte Anzahl an gearbeiteten Stunden pro Woche hat.
Ihre Aufgabe ist es, das durchschnittliche Wochengehalt für das gesamte Team zu berechnen.
In der Funktion calculateWeeklySalary:
- Empfang einer Struktur vom Typ
Employeeals Parameter. - Zugriff auf die Felder
hourlyRateundhoursWorked. - Multiplikation dieser Werte zur Berechnung des Wochengehalts für die jeweilige Person.
- Rückgabe des berechneten Gehalts als
double.
In der Funktion calculateAverageSalary:
- Empfang von drei
Employee-Strukturen als Parameter. - Aufruf von
calculateWeeklySalary()für jede Person, um deren Gesamtvergütung zu erhalten. - Addition aller drei Gehälter.
- Division der Gesamtsumme durch
3.0, um das durchschnittliche Wochengehalt zu berechnen. - Rückgabe dieses Durchschnitts als
double.
Example
| Employee Name | Hourly Rate | Hours Worked | Weekly Salary |
|---|---|---|---|
| Alice Johnson | 22.5 | 40 | 900.00 |
| Bob Smith | 18.0 | 38 | 684.00 |
| Carol White | 25.0 | 42 | 1050.00 |
Average Weekly Salary: 878.00
Lösung
Danke für Ihr Feedback!
single
Fragen Sie AI
Fragen Sie AI
Fragen Sie alles oder probieren Sie eine der vorgeschlagenen Fragen, um unser Gespräch zu beginnen
Großartig!
Completion Rate verbessert auf 4.35
Strukturen an Funktionen Übergeben
Swipe um das Menü anzuzeigen
Funktionen können mit Strukturen genauso arbeiten wie mit regulären Variablen:
main.c
123456789101112131415161718192021#include <stdio.h> // structure definition typedef struct { char name[50]; } Person; // function to display information about a person void printPerson(Person p) { printf("Name: %s\n", p.name); } int main() { // creating a structure and initializing its values Person person1 = {"John"}; // call a function to display information about a person printPerson(person1); return 0; }
Damit eine Funktion mit einer Struktur "interagieren" kann, beispielsweise um die Felder einer bestehenden Struktur zu ändern, muss die Funktion einen Zeiger auf die Struktur akzeptieren:
main.c
12345678910111213141516171819202122232425262728293031#include <stdio.h> // structure definition typedef struct { char symbol; }Example; // function for changing the values of structure fields via a pointer void changePoint(Example* ptr, int newSymbol) { // check for NULL pointer if (ptr != NULL) { ptr->symbol = newSymbol; } } int main() { // create the Example structure and a pointer Example ptr1 = {'H'}; Example* ptr = &ptr1; printf("Old symbol: %c | %p\n", ptr1.symbol, &ptr1); // use function to change the field of structures changePoint(ptr, 'y'); printf("New symbol: %c | %p\n", ptr1.symbol, &ptr1); return 0; }
Strukturen können innerhalb von Funktionen erstellt werden, und solche Strukturen können auch außerhalb der Funktionen "existieren" (nicht lokal), wenn die Funktion einen Zeiger auf eine solche Struktur zurückgibt:
main.c
1234567891011121314151617181920212223242526272829303132#include <stdio.h> #include <stdlib.h> // structure definition typedef struct { int value; }Example; // function creates a structure with the given field Example* CreateStruct(int setVal) { Example* ptr = (Example*)malloc(sizeof(Example)); // check for successful memory allocation if (ptr != NULL) { ptr->value = setVal; } return ptr; } int main() { // use function to create structure Example* ptrToStruct = CreateStruct(23); printf("Value inside struct: %d", ptrToStruct->value); free(ptrToStruct); // free memory return 0; }
Swipe to start coding
Sie verwalten ein kleines Team von drei Mitarbeitenden, wobei jede Person einen Stundenlohn und eine bestimmte Anzahl an gearbeiteten Stunden pro Woche hat.
Ihre Aufgabe ist es, das durchschnittliche Wochengehalt für das gesamte Team zu berechnen.
In der Funktion calculateWeeklySalary:
- Empfang einer Struktur vom Typ
Employeeals Parameter. - Zugriff auf die Felder
hourlyRateundhoursWorked. - Multiplikation dieser Werte zur Berechnung des Wochengehalts für die jeweilige Person.
- Rückgabe des berechneten Gehalts als
double.
In der Funktion calculateAverageSalary:
- Empfang von drei
Employee-Strukturen als Parameter. - Aufruf von
calculateWeeklySalary()für jede Person, um deren Gesamtvergütung zu erhalten. - Addition aller drei Gehälter.
- Division der Gesamtsumme durch
3.0, um das durchschnittliche Wochengehalt zu berechnen. - Rückgabe dieses Durchschnitts als
double.
Example
| Employee Name | Hourly Rate | Hours Worked | Weekly Salary |
|---|---|---|---|
| Alice Johnson | 22.5 | 40 | 900.00 |
| Bob Smith | 18.0 | 38 | 684.00 |
| Carol White | 25.0 | 42 | 1050.00 |
Average Weekly Salary: 878.00
Lösung
Danke für Ihr Feedback!
single