Programação

Exercícios

Autor
Afiliação

CAP Diogo Silva

Academia da Força Aérea

Soluções

Arrays

  • Exercício Slide 10 Solução

  • Exercício Slide 19 Solução

  • 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;
}

AFA 15.2 listlen

int listlen(List *list) {
  int count = 0;
  Node *current = list->head;
  while (current != NULL) {
    count++;
    current = current->next;
  }
  return count;
}

AFA 15.3 soma e média


float soma(List *list) {
  float sum = 0;
  Node *current = list->head;
  while (current != NULL) {
    sum += current->value;
    current = current->next;
  }
  return sum;
}

float media(List *list) {
  return soma(list) / listlen(list);
}

Labs

23/24