Estou estranhando que meu compilador não está recebendo o operador lógico &&.
Estou fazendo os exercvícios de um livro em que devo ficar inserindo numeros num loop infinito até que esse número seja negativo para que depois o programa diga o maior e o menor programa. Achando que seria chato o menor número ser sempre o negativo, quis criar uma condição para que o menor fosse o menor número inserido salvo os negativos. Segue o código:
#include <stdio.h>
#include <stdlib.h>
int main(int argc, char **argv)
{
int maior=0, menor=0, num;
printf ("Digite um número\n");
scanf ("%d",&num);
maior=menor=num;
do{
printf ("Digite um número\n");
scanf ("%d",&num);
if (num>maior)
maior=num;
if ((num>=0) && (num<menor));
menor=num;
}while (num>=0);
printf ("O maior é %d e o menor é %d ", maior, menor);
return 0;
}
O programa compila tranquilamente, mas retorna o menor como negativo, como se não compilasse o " && (num>=0)".
Em que minha lógica está errada?