Ya que eres nuevo en el foro, te avisaré de que no se hacen tareas. Esto no va de que tu pones tus códigos o tus ejercicios y nosotros te los hacemos. El foro sirve para cuando tienes una duda concreta y a ser posible tienes que poner tus avances para que podamos orientarte mejor.
Java como ya sabrás o deberías saber está totalmente orientado a objetos por lo que es obligatorio crear una clase para tu programa. C, en cambio, no está orientado a objetos (no tiene clases) aunque tiene un "apaño" que son la estructuras (struct). No conviertas cada clase de Java en un struct de C porque no tiene sentido, vas a tener que pensar un poco si deberías crearla o no.
PD: Otra característica de un struct es que todos sus campos son públicos por defecto. No se pueden establecer como privados.
Y para crear un número aleatorio en C se utiliza el siguiente código:
#include <stdlib.h> // Para las funciones rand() y srand()
#include <time.h> // Para la funcion time()
int main(){
// Se establece una semilla que es como un generador de numeros aleatorios.
// Una semilla con un valor x siempre genera los mismos numeros aleatorios en cada ejecucion.
// Para que sea mas aleatorio se usa time(NULL) para usar la hora del sistema y que cambie con cada ejecucion.
int numeroAleatorio
= rand(); // El numero aleatorio esta entre 0 y la constante RAND_MAX.
printf("Numero aleatorio entre %d y %d: %d", 0, RAND_MAX
, numeroAleatorio
);
// Para obtener un numero entre [a, b):
numeroAleatorio
= a
+ rand() % (b
-a
);
// Para obtener un numero entre [a, b]:
numeroAleatorio
= a
+ rand() % (b
-a
+1);}
Dicho esto que creo que es lo más diferente entre Java y C, el resto son bucles y operaciones aritméticas básicas que tienes que poder hacerlo tú solo.
Suerte.