Escreva uma função que retorna o maior valor de um array de tamanho N. Escreva um programa que leia N valores inteiros, imprima o array com k elementos por linha, e o maior elemento. O valor de k também deve ser fornecido pelo usuário.

Passo 1

A gente precisa ler dois inteiros: o tamanho do array N e a quantidade de elementos por linha k, depois ler N valores inteiros, armazenar num array, imprimir esse array com k elementos por linha e, por fim, mostrar o maior valor. O conteúdo envolve arrays, funções e loops.

Passo 2

Vamos criar uma função chamada max que receba um array e seu tamanho, percorra todos os elementos comparando-os e retorne o maior valor encontrado. Isso mostra como estruturar funções que operam sobre coleções.

Passo 3

No programa principal, primeiro a gente lê os valores de N e k usando scanf, para saber quantos números vão entrar no array e quantos mostrar por linha.
Depois alocamos dinamicamente um array de tamanho N (ou podemos usar um vetor fixo, se preferir) e fazemos um loop de 0 até N-1 para ler cada valor no array.

Passo 4

Em seguida chamamos a função max passando o array e N para obter o maior valor, guardando-o numa variável m.

Passo 5

Para imprimir o array com k elementos por linha, fazemos outro loop de 0 até N-1, imprimimos arr[i] seguido de espaço e, sempre que (i+1)bmod k == 0, imprimimos uma quebra de linha. No final, se Nbmod k neq 0, imprimimos mais uma quebra para ajustar o formato.

Passo 6

Por fim, imprimimos o valor m, que é o maior elemento, e liberamos a memória alocada antes de sair do programa.

Resposta

#include <stdio.h>
#include <stdlib.h>
int max(int arr[], int n) {
int m = arr[0];
for (int i = 1; i < n; i++) {
if (arr[i] > m) {
m = arr[i];
}
}
return m;
}
int main() {
int N, k;
scanf("%d %d", &N, &k);
int *arr = malloc(N * sizeof(int));
for (int i = 0; i < N; i++) {
scanf("%d", &arr[i]);
}
int m = max(arr, N);
for (int i = 0; i < N; i++) {
printf("%d “, arr[i]);
if ((i + 1) % k == 0) {
printf(”\n");
}
}
if (N % k != 0) {
printf("\n");
}
printf("%d\n", m);
free(arr);
return 0;
}

Exercícios relacionados