请问这个我错在哪里了

img

img


#include<stdio.h> #include<math.h> int main() { int n, i, x; i = 0; scanf("%d", &n); for (x = 1; x < sqrt(n); x++) { if (n -x * x>0) i++; else break; } printf("%d\n", i-2); return 0; }

你这错的很离谱,你的y是什么情况,还没有判断呢!首先需要分析好题目,需要你干什么!提供个思路,两个for循环进行遍历,一个查找x,范围为0到n/2,另一个查找y,范围0到根号n,然后查找满足算式的情况!

两个循环判断x和y即可

#include <stdio.h>
int main()
{
     int n, i=0, x,y; 
     scanf("%d", &n);
     for(x=1;x<n*n;x++)
     {
         for(y=1;y<n*n;y++)
         {
             if(x*2+y*y==n)
             {
                 i++;
             }
         }
     }
     printf("%d",i);
    return 0;
}