Sequência Ordenada em C

1. Sequência Ordenada em C

eduardo braz
Eduardo_Braz

(usa Debian)

Enviado em 15/11/2019 - 10:30h

Entrada
Para cada sequência numérica há na entrada duas linhas: uma com, apenas um valor inteiro, indica o
número de valores reais que deve ocorrer na próxima linha. A linha seguinte contém tantos valores quanto
indicado na linha anterior. Entre dois valores há apenas um espaço e após o último valor há um caractere
de quebra de linha. A última linha da entrada contém um tamanho de sequência igual a zero e serve apenas
para indicar término do processamento. Não há uma linha com sequência de valores após a ocorrência de
uma linha com valor zero.


Saída
Para cada seqüência da entrada o seu programa deve emitir uma das seguintes respostas: ORDENADA,
se a sequência estiver em ordem crescente de valores ou DESORDENADA, em caso contrário. Após cada
palavra impressa deve haver apenas um caractere de quebra de linha.


Exemplo

Entrada

10
2.98 16.42 18.0 23.67 31.99 38.50 42.30 61.782000.00 2000.10
5

4.51 4.32 4.90 56.70 150.80
6

0.00 2.56 4.00 80.4 100.98 100.97
0

Saída

ORDENADA
DESORDENADA
DESORDENADA

Código <- Está em loop

#include <stdio.h>

int main(){
int t, i;
double n, sequencia,n2;
char c;
n2 = 0;
sequencia = 0;

scanf("%d", &t);

for (i = 0; i < t; i++)
{
scanf("%lf", &n);
do { c = fgetc(stdin);} while ( c!='\n') ;
printf("%lf ", n);
if(n > n2 || n < n2){
sequencia++;
}
n2 = n;
}
if(n == sequencia){
printf("ODERNADA");
}
else{
printf("DESORDENADA");
}
}


  


2. Re: Sequência Ordenada em C

Paulo
paulo1205

(usa Ubuntu)

Enviado em 15/11/2019 - 12:15h

Qual sua dúvida?


... “Principium sapientiae timor Domini, et scientia sanctorum prudentia.” (Proverbia 9:10)


3. Sequência Ordenada em C

eduardo braz
Eduardo_Braz

(usa Debian)

Enviado em 15/11/2019 - 19:55h

É que ele fica em loop não procesa


4. Re: Sequência Ordenada em C

Paulo
paulo1205

(usa Ubuntu)

Enviado em 17/11/2019 - 00:31h

Não coloquei seu código à prova, mas aquele “do { c=fegtc(stdin); } while(c!='\n');” me parece tanto desnecessário quanto temerariamente errado. Desnecessário porque o enunciado não diz para você se preocupar com tratamento de erros ou com esvaziamento preemptivo do buffer de entrada. Errado porque, uma vez que você se mete a lidar com buffer, emprega para a variável c um tipo de dados (char) que é incompatível com o tipo devolvido por fgetc() (int), o que significa que você perde a capacidade de distinguir entre um erro de leitura (valor EOF, que tipicamente vale -1 com precisão de int) e um caráter válido com valor 255 ou (char)(-1).

Por outro lado, não vi no seu programa código que o habilite a processar múltiplas sequências, como o enunciado pede que se faça. Em vez disso, você parece tentar processar uma sequência só, e simplesmente sai do programa após processá-la.


... “Principium sapientiae timor Domini, et scientia sanctorum prudentia.” (Proverbia 9:10)






Patrocínio

Site hospedado pelo provedor RedeHost.
Linux banner
Linux banner
Linux banner

Destaques

Artigos

Dicas

Tópicos

Top 10 do mês

Scripts