Intentando resolver un ejercicio en el que tengo que imprimir un valor de temperatura aleatorio entre 35°C y -10°C cada 5 segundos seguido de la fecha y la hora. Todo parece estar funcionando según lo previsto, sin embargo, cuando ingreso el código en un script de prueba, recibo los siguientes errores.
Este es mi código:
#include<stdio.h> #include<unistd.h> #include<time.h> #define temp_max 35 #define temp_min -10 #define FREQUENCY 5 int main(void) { srand(time(NULL)); while(1) { int number = rand() % (temp_max*100 - temp_min*100) + temp_min*100; double temperature = (double) number; temperature /= 100; printf("Temperature=%1.2f @ ",temperature); fflush(stdout); system("date"); sleep(FREQUENCY); } return 0; }Estos son mis resultados:

Esto es lo que comprueba el script de prueba:

Como no puedo ver mis propios errores, cualquier ayuda sería muy apreciada.
No pudo #include <stdlib.h> . Como resultado, se asumió que las funciones a las que llamó aceptaban un número desconocido de argumentos y devolvían un valor de tipo int . Esto provoca un comportamiento indefinido.
Ponga #include <stdlib.h> en la parte superior de su archivo.
Tuve un problema similar. Mi código fue compilado pero recibí un mensaje de advertencia.
// Selection sort #include <stdio.h> #include <math.h> int main() { int list[100], i; for(i = 0 ; i < 100; i++) { list[i] = ( rand()%99 + 1 ); printf("%d ", list[i]); } printf("\n"); return 0; }Cuando lo compilo,
gcc -o selection_sort selection_sort.c -lm selection_sort.c: In function 'main': selection_sort.c:11:15: warning: implicit declaration of function 'rand'; did you mean 'nanl'? [-Wimplicit-function-declaration] list[i] = ( rand()%99 + 1 ); ^~~~ nanl Después de agregar <stdlib.h> , el mensaje de advertencia desapareció.