Ir para conteúdo
Fórum Script Brasil

Gabriel_TF141

Membros
  • Total de itens

    2
  • Registro em

  • Última visita

Sobre Gabriel_TF141

Gabriel_TF141's Achievements

0

Reputação

  1. Problema 1) #include<stdio.h> int main(){ double soma; int n; printf("Digite o valor:"); scanf("%d",&n); if(n<=0){ printf("Erro:"); return 0; } soma=0; for(int i=0;i<n;i++) if(i%2==0) soma+=i; printf("A media é: %.2f ",soma/n); return 0; }Agora usa o programa um como base pra fazer o resto.
  2. Este é um problema bastante conhecido, existem diversas formas de se ordernar um vetor. Como você ainda está começando na programação vou lhe dizer a maneira simples. Além disso a resolução a seguir independe da quantidade de inteiros no vetor. Vamos lá! A ideia deste algoritimo é a seguinte, dado um vetor v[0..n-1] com n numeros, eu vou analisar o subtrecho v[0..i], colocar em m o maior valor e depois colocar o valor m não ultima posicao, veja que quem faz isso é o segundo laco mais interno, então no primeiro loop do for mais externo o ultimo valor estara na posicao correta, no segundo loop o ultimo e o penultimo estaram na posicao correta e assim sucessivamente até que todo o vetor esteja ordenado. /*Ordenação do vetor:*//*Esse laço mais externo ira controlar o subtrecho a ser ordenado.*/ for(i = n-1; i > 0; i--){ m = 0;// Este laço vai decidir em qual posicao do subtrecho [0...i] esta o maior valor for(j = 1; j <= i; j++){ if(vet[j] > vet[m]) m = j; }// Apos decidico qual a posicao m tem o maior valor é hora de substituir o ultimo valor do subtrecho pelo valor contido na posicao m tmp = vet; vet = vet[m]; vet[m] = tmp; } É fácil ver que se você quiser em ordem decrescente basta troca o '>' por '<'. Outra coisa, essa mais "hardcore" kk, é que no pior que caso esse tipo de ordenacao é da ordem de n*n, o que pra n muito grande vai explodir, por isso existem algoritimos de ordenacao muito mais eficientes como o mergesort, quicksort e outros.
×
×
  • Criar Novo...