c语言输入斜边求直角边

问题遇到的现象和发生背景 为什么加上if (f == 1)break;这句就错了
用代码块功能插入代码,请勿粘贴截图
int n;
printf("输入斜边长");
scanf("%d", &n);
int a, b, f;
for (a = 1; a < n; a++) {
    for (b = a; b < n; b++) {
        if (n * n == a * a + b * b) {
            printf("%d %d", a, b);
            f = 1;
            break;
        }
    }
    if (f == 1)
        break;
}
运行结果及报错内容 运行但结果错
我的解答思路和尝试过的方法 去掉if (f == 1)break;
        结果对