Red de conocimiento informático - Aprendizaje de código fuente - Novato, pregunta sobre la natación en lenguaje C Luogu Xiaoyu

Novato, pregunta sobre la natación en lenguaje C Luogu Xiaoyu

En primer lugar, me gustaría señalar que mi nivel C es solo el nivel 2, que no es un nivel que haya estudiado en una universidad especializada en informática. Si tiene alguna pregunta, indíquela. He encontrado 3 problemas hasta ahora

1.disten+= disten*0.98 debería ser disten*=0.98, o eliminar tu +. No entraré en este motivo, pero es fácil de entender

2. El tipo definido por disten es incorrecto. Deberías cambiar int disten a Float disten o incluso double disten, esto depende de tus necesidades. La razón es que si es int, el disten inicial = 2. luego multiplicado por 0.98, debido al tipo entero, el valor de disten es 1, y se vuelve 0 después de ejecutarlo nuevamente, y luego un bucle infinito

3. En cuanto a la salida final i, puedes cambiar. a i-1 o el valor inicial de i a 0. La razón es que i++ en el bucle for se ejecutará una vez después de que finalice el bucle, lo que hará que i sea 1 mayor que el valor real