Fórum ALGUEM PODERIA ME AJUDAR EM UM CODIGO EM C? DA MINHA RECUPERAÇAO DE PROVA DE ALGORITIMOS? #617239
25/11/2021
0
- definir uma função para determinar se os valores
no arranjo estão em ordem decrescente;
- ler e armazenar dados de um arranjo do arquivo DADOS1.TXT;
- se não estiverem, colocá-los em ordem decrescente,
antes de regravar os dados no arquivo DECRESCENTE.TXT,
colocando a quantidade de elementos na primeira linha do arquivo.
DICA: Para ordenar usar o princípio de troca dos elementos vizinhos
que não estiverem ordenados, e testar novamente usando a função,
até que não seja necessário fazer mais trocas.
OBRIGADO PESSOAL
Bielmarques23
Curtir tópico
+ 1Posts
26/11/2021
Emerson Nascimento
o conteúdo do vetor (se for dinâmico) e a gravação dos arquivos ficam com você.
#include <stdio.h>
void OrdenaDecrescente(int *vetor, int tamanho);
int main() {
int valores[] = {6, 7, 10, 4, 9, 1, 5, 2}; // conteúdo fixo, mas você pode solicitar ao executar o programa
int i;
int n = sizeof(*(&valores)) / sizeof(*valores);
printf("TAMANHO DO VETOR: %d\\n", n);
printf("ANTES da função\\n");
for (i=0;i<n;i++) {
printf("Valor do vetor[%d] = %d\\n",i, valores[i]);
}
OrdenaDecrescente( valores, n );
printf("DEPOIS da função\\n");
for (i=0;i<n;i++) {
printf("Valor do vetor[%d] = %d\\n",i, valores[i]);
}
return 0;
}
void OrdenaDecrescente(int *vetor, int n) {
int i,j,aux,troca;
for (i=n-1;i>0;i--) {
troca = 0;
for (j=0;j<i;j++) {
if (vetor[j] < vetor[j+1]) {
aux = vetor[j];
vetor[j] = vetor[j+1];
vetor[j+1] = aux;
troca = 1;
}
}
if (troca == 0) break; // se não houve troca, sai, porque todos os elementos já foram ordenados
}
}
Gostei + 0
26/11/2021
Leticia Lima
vou deixar um exemplo aqui sobre gravar os dados em um arquivo pra você.
#include <iostream>
#include <conio.h>
#include <vector>
using namespace std;
int main(){
int quant, i,j;
float grade[i];
int cont;
printf("%i", n);
FILE *pont_arq;
pont_arq = fopen("DADOS1.txt", "w");
// testa se o arquivo foi realmente preenchido
if(pont_arq == NULL){
printf("Erro na abertura do arquivo!");
return 1;
}
// digita a quantidade de valores que vamos armazenar no vetor
printf("Quantidades de valores da lista:");
scanf("%i", &quant);
printf("%i\\n", quant);
// Inserir os valores no vetor
for(cont=0 ; cont<quant ; cont++){
cout<<"Insira valor "<<cont+1<<": ";
cin >> grade[cont];
}
printf("\\n");
// Grava as informações no DADOS.txt
printf("Vetor antes da ordenação: \\n");
for(int i=0;i<quant;++i) {
printf("%0.f\\n", grade[i]);
fprintf(pont_arq, "%0.f\\n", grade[i]);
}
printf("\\n");
fclose(pont_arq);
printf("DADOS1 gravados com sucesso!");
printf("\\n");
}
Espero ter ajudado.
Gostei + 0
Clique aqui para fazer login e interagir na Comunidade :)