Pętla jest całkowicie zbędna. Zobacz opis wejścia:
Na wejściu podane są dwie liczby zmiennoprzecinkowe r d oddzielone spacją, oznaczające odpowiednio promień sfery i odległość między środkami sfer.
BTW Wcale nie musiałeś ustawiać precyzji do dwóch liczb po przecinku. W treści zadanie nie ma nic o zaokrąglaniu wyniku. Wystarczy, że jego dopuszczalny błąd będzie mniejszy od 0.01.
Witam potrzebuje pomocy ogarniam to zadanie w Javie i nie wychodzi, ktoś pomoże ?
import java.util.Scanner;
public class PolePewnegoKoła {
public static void main(String[] args) {
double r ,d , s ,r2 ;
Scanner pole = new Scanner(System.in);
r= pole.nextInt();
System.out.println(" ");
d= pole.nextInt();
r2 =(r*r)-((d*d)/4);
s= Math.PI*r2;
System.out.println(s);
przeczytaj uważnie treść zadania
naucz się przekazywać kod poprzez ideone.com30, i tam też testuj program
https://ideone.com/VYRL1D16 niestety dalej dostaje błąd a nie rozumiem o co dokładnie chodzi, za wszelką pomoc będę mega wdzięczny
- Na wyjściu wypisz dokładnie to co jest opisane w zadaniu. Nie mniej, nie więcej. Żadnych zbędnych informacji typu “Wpisz promien kola :”.
- Nie sprawdzaj poprawności danych jeżeli nie jest to opisane w zadaniu. Instrukcja warunkowa
if ( d< 2 * r, d>=1,d<2000 )
jest zbędna. Niestety robi również coś innego niż myślisz (patrz ostrzeżenia kompilatora). Poczytaj o tym jak działają operatory logiczne, a jak operator przecinka w C++. - Nie musisz zaokrąglać wyniku. W zadaniu masz otrzymać wynik poprawny do 2 miejsc po przecinku. W C++ do zaokrąglania liczb używamy
std::fixed
istd::setprecision
z nagłówkaiomanip
.