이 문제에 대한 도움이 필요합니다. 하루 종일 해결하려고 노력하고 있지만 해결책을 찾을 수 없습니다. 내가 사과 그래서, 나는에만 사용하도록 허용하고 그러나 바보 같은 질문 경우 그냥 C를 공부를 시작 :숫자가 C의 두 사각형의 합계인지 확인하십시오
if
for
do-while
while
문제를 해결하는 진술.
주어진 수를 2 개의 정사각형의 합으로 쓸 수 있는지 확인해야하는데이 두 정사각형이 어느 것인지 알 필요가 없으며 숫자가 0 일 경우 분석 할 필요가 없습니다. 내가 지금까지 구축 관리했습니다 무엇 1.은 다음과 같습니다
unsigned int x;
unsigned int q = 1;
printf("Enter a number : \n");
scanf("%u", &x);
unsigned int j = sqrt(x - (q*q));
if (x != 1 && x != 0)
for (q; (q*q) <= (x/2); q++)
if ((x - (q*q)) == (j*j))
printf("Given number is sum of two squares");
이 하나가 때로는 때로는 작동하고
하지 않습니다, 그것은 65 (8^2+1^2)
및 90 (9^2+3^2)
에 대한 작업을 수행하지만 181 (10^2+9^2)
을 넣을 때 작동하지 않을 것입니다 예를 들어 및 so on ... 이 문제를 어떻게 해결할 수 있는지 알고 있습니까?
그래서'return = '또는'a = b;'와 같은 표현식이 없습니까? 죄송합니다. 불가능합니다. 귀하의 코드는 이미 제약 조건을 위반합니다. – Olaf
죄송합니다. 실수로, a = b, – Tsurupeta
과 같은 표현을 사용할 수 있습니다. 예, 분명합니다. 'while'등과 같이 작동하지 않습니다. 하지만 _expression-statements_도 사용할 수 있습니까? – Olaf