0% acharam este documento útil (0 voto)
20 visualizações14 páginas

Prova

Enviado por

davidognani863
Direitos autorais
© © All Rights Reserved
Levamos muito a sério os direitos de conteúdo. Se você suspeita que este conteúdo é seu, reivindique-o aqui.
Formatos disponíveis
Baixe no formato PDF, TXT ou leia on-line no Scribd
0% acharam este documento útil (0 voto)
20 visualizações14 páginas

Prova

Enviado por

davidognani863
Direitos autorais
© © All Rights Reserved
Levamos muito a sério os direitos de conteúdo. Se você suspeita que este conteúdo é seu, reivindique-o aqui.
Formatos disponíveis
Baixe no formato PDF, TXT ou leia on-line no Scribd
Você está na página 1/ 14

1) #include <stdio.

h>

typedef struct {

int matricula;

char nome[50];

float notas[3];

} Aluno;

int main() {

Aluno alunos[5];

int i, j, maior = 0;

float media, maiorMedia = 0;

for (i = 0; i < 5; i++) {

printf("Digite a matrícula do aluno %d: ", i + 1);

scanf("%d", &alunos[i].matricula);

printf("Digite o nome do aluno %d: ", i + 1);

scanf("%s", alunos[i].nome);

printf("Digite as 3 notas do aluno %d: ", i + 1);

for (j = 0; j < 3; j++) {

scanf("%f", &alunos[i].notas[j]);

media = (alunos[i].notas[0] + alunos[i].notas[1] + alunos[i].notas[2]) / 3;

if (media > maiorMedia) {

maiorMedia = media;

maior = i;

printf("Aluno com maior media:\n");


printf("Nome: %s\n", alunos[maior].nome);

printf("Notas: %.2f, %.2f, %.2f\n", alunos[maior].notas[0], alunos[maior].notas[1],


alunos[maior].notas[2]);

return 0;

2) #include <stdio.h>

#include <string.h>

int main() {

char str[100];

int i, tamanho, palindromo = 1;

printf("Digite uma string: ");

scanf("%s", str);

tamanho = sizeof(str);

for (i = 0; i < tamanho / 2; i++) {

if (str[i] != str[tamanho - i - 1]) {

palindromo = 0;

break;

if (palindromo)

printf("A string e um palindromo.\n");

else

printf("A string nao é um palindromo.\n");

return 0;

3) #include <stdio.h>

int main() {

float numeros[8];

int i, j, contagem;
printf("Digite 8 numeros:\n");

for (i = 0; i < 8; i++) {

scanf("%f", &numeros[i]);

for (i = 0; i < 8; i++) {

contagem = 0;

for (j = 0; j < 8; j++) {

if (numeros[i] == numeros[j]) {

contagem++;

printf("%.1f ocorre %d vez(es)\n", numeros[i], contagem);

return 0;

4) #include <stdio.h>

int main() {

int matriz[10][10] = {0};

int linha, coluna, valor;

while (1) {

printf("Digite a linha, coluna e valor (negativos para parar): ");

scanf("%d %d %d", &linha, &coluna, &valor);

if (linha < 0 || coluna < 0 || valor < 0)

break;

if (linha < 10 && coluna < 10)

matriz[linha][coluna] = valor;

else

printf("Indices fora do limite!\n");

printf("Matriz:\n");

for (linha = 0; linha < 10; linha++) {


for (coluna = 0; coluna < 10; coluna++) {

printf("%d ", matriz[linha][coluna]);

printf("\n");

return 0;
}
1) #include <stdio.h>

typedef struct {
int dia, mes, ano;
} Data;

int calculaDias(Data data) {


return data.ano * 365 + data.mes * 30 + data.dia;
}

int main() {
Data data1, data2;
int dias1, dias2;

printf("Digite a primeira data (dia mes ano): ");


scanf("%d %d %d", &data1.dia, &data1.mes, &data1.ano);

printf("Digite a segunda data (dia mes ano): ");


scanf("%d %d %d", &data2.dia, &data2.mes, &data2.ano);

dias1 = calculaDias(data1);
dias2 = calculaDias(data2);

printf("Diferença de dias: %d\n", dias2 - dias1);

return 0;
}

2) #include <stdio.h>

int main() {
int n, i;
int a = 0, b = 1, c;

printf("Digite o número de termos de Fibonacci: ");


scanf("%d", &n);
printf("Sequência de Fibonacci:\n");
for (i = 1; i <= n; i++) {
printf("%d ", a);
c = a + b;
a = b;
b = c;
}
printf("\n");
return 0;
}
3) #include <stdio.h>

int main() {
int numeros[10], i, maior, menor;

printf("Digite 10 numeros inteiros:\n");

for (i = 0; i < 10; i++) {


scanf("%d", &numeros[i]);
}

maior = menor = numeros[0];

for (i = 1; i < 10; i++) {


if (numeros[i] > maior) {
maior = numeros[i];
}
if (numeros[i] < menor) {
menor = numeros[i];
}
}

printf("O maior número e: %d\n", maior);


printf("O menor número e: %d\n", menor);

return 0;
}

4) #include <stdio.h>

int main() {
int numeros[10], i;

printf("Digite 10 numeros inteiros:\n");

for (i = 0; i < 10; i++) {


scanf("%d", &numeros[i]);
}

printf("Vetor em ordem inversa:\n");

for (i = 9; i >= 0; i--) {


printf("%d ", numeros[i]);
}

printf("\n");
return 0;
}
1) #include <stdio.h>
#include <stdlib.h>

struct Atleta {
char nome[50];
char esporte[50];
int idade;
float altura;
};

int main() {
struct Atleta atletas[5];
FILE *arquivo = fopen("atletas.txt", "w");

if (arquivo == NULL) {
printf("Erro ao abrir o arquivo!\n");
return 1;
}

for (int i = 0; i < 5; i++) {


printf("Digite o nome do atleta %d: ", i + 1);
scanf(" %[^\n]", atletas[i].nome);
printf("Digite o esporte do atleta %d: ", i + 1);
scanf(" %[^\n]", atletas[i].esporte);
printf("Digite a idade do atleta %d: ", i + 1);
scanf("%d", &atletas[i].idade);
printf("Digite a altura do atleta %d (em metros): ", i + 1);
scanf("%f", &atletas[i].altura);
printf("\n");

fprintf(arquivo, "Atleta %d:\n", i + 1);


fprintf(arquivo, "Nome: %s\n", atletas[i].nome);
fprintf(arquivo, "Esporte: %s\n", atletas[i].esporte);
fprintf(arquivo, "Idade: %d\n", atletas[i].idade);
fprintf(arquivo, "Altura: %.2f\n\n", atletas[i].altura);
}

fclose(arquivo);
printf("Dados dos atletas salvos no arquivo atletas.txt.\n");

return 0;
}

2) #include <stdio.h>
#include <stdlib.h>

struct No {
int valor;
struct No *prox;
};
void inserir(struct No **lista, int valor) {
struct No *novo = (struct No*) malloc(sizeof(struct No));
novo->valor = valor;
novo->prox = *lista;
*lista = novo;
}
void exibir(struct No *lista) {
struct No *atual = lista;
while (atual != NULL) {
printf("%d -> ", atual->valor);
atual = atual->prox;
}
printf("NULL\n");
}

void separarParImpar(struct No *lista, struct No **pares, struct No **impares) {


struct No *atual = lista;
while (atual != NULL) {
if (atual->valor % 2 == 0) {
inserir(pares, atual->valor);
} else {
inserir(impares, atual->valor);
}
atual = atual->prox;
}
}
int main() {
struct No *lista = NULL;
struct No *pares = NULL;
struct No *impares = NULL;
inserir(&lista, 1);
inserir(&lista, 2);
inserir(&lista, 3);
inserir(&lista, 4);
inserir(&lista, 5);
inserir(&lista, 6);
printf("Lista original:\n");
exibir(lista);
separarParImpar(lista, &pares, &impares);
printf("\nLista de pares:\n");
exibir(pares);
printf("\nLista de ímpares:\n");
exibir(impares);

return 0;
}
3) #include <stdio.h>
#include <stdlib.h>

struct No {
int valor;
struct No *prox;
};
void inserir(struct No **lista, int valor) {
struct No *novo = (struct No*) malloc(sizeof(struct No));
novo->valor = valor;
novo->prox = NULL;

if (*lista == NULL) {
*lista = novo;
} else {
struct No *atual = *lista;
while (atual->prox != NULL) {
atual = atual->prox;
}
atual->prox = novo;
}
}
void exibir(struct No *lista) {
struct No *atual = lista;
while (atual != NULL) {
printf("%d -> ", atual->valor);
atual = atual->prox;
}
printf("NULL\n");
}
void trocarComProximo(struct No **lista, int valor) {
struct No *anterior = NULL;
struct No *atual = *lista;
while (atual != NULL && atual->prox != NULL && atual->valor != valor) {
anterior = atual;
atual = atual->prox;
}
if (atual != NULL && atual->prox != NULL) {
struct No *prox = atual->prox;
if (anterior == NULL) {
*lista = prox;
} else {
anterior->prox = prox;
}
atual->prox = prox->prox;
prox->prox = atual;
} else {
printf("Valor %d não encontrado ou não há nó seguinte para trocar.\n", valor);
}
}

int main() {
struct No *lista = NULL;
inserir(&lista, 5);
inserir(&lista, 2);
inserir(&lista, 6);
inserir(&lista, 8);
inserir(&lista, 4);

printf("Lista original:\n");
exibir(lista);

trocarComProximo(&lista, 6);

printf("\nLista após trocar 6 com o próximo:\n");


exibir(lista);

return 0;
}

4) Ambas estão incorretas, pois a primeira função tem um problema com variáveis
locais, e a segunda, apesar de alocar dinamicamente a célula, não atualiza
corretamente o ponteiro da lista principal, já que lst é passado por valor.

#include <stdio.h>

int main() {
int n, i;

printf("Digite um número inteiro positivo: ");


scanf("%d", &n);

printf("Divisores de %d:\n", n);

for (i = 1; i <= n; i++) {


if (n % i == 0) {
printf("%d ", i);
}
}

printf("\n");
return 0;
}

Você também pode gostar

pFad - Phonifier reborn

Pfad - The Proxy pFad of © 2024 Garber Painting. All rights reserved.

Note: This service is not intended for secure transactions such as banking, social media, email, or purchasing. Use at your own risk. We assume no liability whatsoever for broken pages.


Alternative Proxies:

Alternative Proxy

pFad Proxy

pFad v3 Proxy

pFad v4 Proxy