Passaggio di Struct alle Funzioni
Le funzioni possono lavorare con le strutture proprio come con le variabili normali:
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; }
Affinché una funzione possa "interagire" con una struttura, ad esempio modificare i campi di una struttura esistente, la funzione deve accettare un puntatore alla struttura:
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; }
Le strutture possono essere create all'interno delle funzioni, e tali strutture possono "esistere" al di fuori delle funzioni (non localmente) se la funzione restituisce un puntatore a tale struttura:
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
Gestisci un piccolo team di tre dipendenti, ognuno con una tariffa oraria e un numero di ore lavorate a settimana.
Il tuo compito è calcolare la media degli stipendi settimanali per l'intero team.
All'interno della funzione calculateWeeklySalary:
- Ricevi una struttura di tipo
Employeecome parametro. - Accedi ai campi
hourlyRateehoursWorked. - Moltiplicali per calcolare lo stipendio settimanale di quel dipendente.
- Restituisci lo stipendio calcolato come
double.
All'interno della funzione calculateAverageSalary:
- Ricevi tre strutture
Employeecome parametri. - Chiama
calculateWeeklySalary()per ciascun dipendente per ottenere il loro stipendio totale. - Somma tutti e tre gli stipendi.
- Dividi il totale per
3.0per ottenere la media dello stipendio settimanale. - Restituisci questa media come
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
Soluzione
Grazie per i tuoi commenti!
single
Chieda ad AI
Chieda ad AI
Chieda pure quello che desidera o provi una delle domande suggerite per iniziare la nostra conversazione
Fantastico!
Completion tasso migliorato a 4.35
Passaggio di Struct alle Funzioni
Scorri per mostrare il menu
Le funzioni possono lavorare con le strutture proprio come con le variabili normali:
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; }
Affinché una funzione possa "interagire" con una struttura, ad esempio modificare i campi di una struttura esistente, la funzione deve accettare un puntatore alla struttura:
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; }
Le strutture possono essere create all'interno delle funzioni, e tali strutture possono "esistere" al di fuori delle funzioni (non localmente) se la funzione restituisce un puntatore a tale struttura:
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
Gestisci un piccolo team di tre dipendenti, ognuno con una tariffa oraria e un numero di ore lavorate a settimana.
Il tuo compito è calcolare la media degli stipendi settimanali per l'intero team.
All'interno della funzione calculateWeeklySalary:
- Ricevi una struttura di tipo
Employeecome parametro. - Accedi ai campi
hourlyRateehoursWorked. - Moltiplicali per calcolare lo stipendio settimanale di quel dipendente.
- Restituisci lo stipendio calcolato come
double.
All'interno della funzione calculateAverageSalary:
- Ricevi tre strutture
Employeecome parametri. - Chiama
calculateWeeklySalary()per ciascun dipendente per ottenere il loro stipendio totale. - Somma tutti e tre gli stipendi.
- Dividi il totale per
3.0per ottenere la media dello stipendio settimanale. - Restituisci questa media come
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
Soluzione
Grazie per i tuoi commenti!
single