Programação
Exercícios
Soluções
Arrays
Função que calcula máximo de array de inteiros.
#include <stdio.h> // Função para calcular o máximo de um array de inteiros int calcularMaximo(int array[], int tamanho) { int maximo = array[0]; // Assumimos o primeiro elemento como máximo inicialmente // Percorremos o array para encontrar o máximo for (int i = 1; i < tamanho; i++) { if (array[i] > maximo) { maximo = array[i]; } } return maximo; } int main() { int array[] = {10, 5, 8, 15, 3, 20}; int tamanho = sizeof(array) / sizeof(array[0]); // Chamamos a função calcularMaximo para obter o máximo do array int maximo = calcularMaximo(array, tamanho); printf("O máximo do array é: %d\n", maximo); return 0; }
Função que devolve a posição onde está o valor máximo num array de inteiros.
// Função para encontrar a posição do máximo em um array de inteiros int encontrarPosicaoMaximo(int array[], int tamanho) { int posicaoMaximo = 0; // Assumimos a primeira posição como a posição do máximo inicialmente int maximo = array[0]; // Assumimos o primeiro elemento como máximo inicialmente // Percorremos o array para encontrar o máximo e sua posição for (int i = 1; i < tamanho; i++) { if (array[i] > maximo) { maximo = array[i]; posicaoMaximo = i; } } return posicaoMaximo; }
AFA 9.3 v1 (sem escolher direção) Solução Video na pasta partilhada Sharepoint
AFA 9.3 v2 (escolher direção) Solução
AFA 9.4 Solução Video na pasta partilhada Sharepoint
King 8.1 Solução
King 8.7 Solução
Strings
13 Ficheiros
14 Memória
15
AFA 15.1
#include <stdio.h>
#include <stdlib.h>
typedef struct node {
float value;
struct node *next;
} Node;
typedef struct {
Node * head;
int size;
} List;
// adiciona no final da lista
void add(List *list, float value) {
Node *newNode = (Node *) malloc(sizeof(Node));
newNode->value = value;
newNode->next = NULL;
if (list->head == NULL) {
list->head = newNode;
} else {
Node *current = list->head;
while (current->next != NULL) {
current = current->next;
}
current->next = newNode;
}
list->size++;
}
void printList(List *list) {
Node *current = list->head;
while (current != NULL) {
printf("%f\n", current->value);
current = current->next;
}
}
int main() {
List list;
list.head = NULL;
list.size = 0;
float value;
char c;
do {
scanf("%f%c", &value, &c);
add(&list, value);
} while (c != 'f');
printList(&list);
return 0;
}