Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/c/59.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C 打印第四条边的任何有效大小以生成非退化简单四边形_C_Math - Fatal编程技术网

C 打印第四条边的任何有效大小以生成非退化简单四边形

C 打印第四条边的任何有效大小以生成非退化简单四边形,c,math,C,Math,我需要打印任何有效的值,它是一个四边形的第四条边的大小,它的其他三条边是给定的 问题链接: 下面是我的程序,但不知怎么的,在线法官不会接受,给我这个测试案例#2 “回答错误:最大值不小于96上其他值之和” 现在的问题是,我看不到测试用例#2上的输入96,因此不理解我的代码有什么问题。我在这里该怎么办 #include<stdio.h> long long int max(long long int x, long long int y); int main() { i

我需要打印任何有效的值,它是一个四边形的第四条边的大小,它的其他三条边是给定的

问题链接:

下面是我的程序,但不知怎么的,在线法官不会接受,给我这个测试案例#2

“回答错误:最大值不小于96上其他值之和”

现在的问题是,我看不到测试用例#2上的输入96,因此不理解我的代码有什么问题。我在这里该怎么办

#include<stdio.h>
 
long long int max(long long int x, long long int y);
 
int main()
{
    int t;
    scanf("%d", &t);
    while(t--)
    {
        long long int a,b,c, d, num;
        scanf("%llu %llu %llu", &a, &b, &c);
        num = max(a,max(b,c));
        printf("%llu\n", num+1);         //valid fourth side size - max(a,b,c) + 1

    }
    return 0;
}
 
long long int max(long long int x, long long int y)
{
    return (x > y) ? x : y;
}
#包括
长整型最大值(长整型x,长整型y);
int main()
{
int t;
scanf(“%d”、&t);
而(t--)
{
长整型a,b,c,d,num;
scanf(“%llu%llu%llu”、&a、&b和&c);
num=max(a,max(b,c));
printf(“%llu\n”,num+1);//有效的第四面大小-最大(a,b,c)+1
}
返回0;
}
长整型最大值(长整型x,长整型y)
{
返回(x>y)?x:y;
}



我可以用第四方的一些其他有效值来解决它,比如a+b+c-1,但我想我需要知道上面的代码失败的原因。

从链接的问题页面,对于第二个试用示例
12 34 56
,给定/正确的解决方案是
42
。但是,
max(a,b,c)
是56,而
56-1
不是42。所以,我认为你需要一个更好的算法。我不知道如何解决这个问题,但是,对于长度
a
b
c
,您可能需要注意线段的顺序(例如
a b c d
a c d
b a c d
b c a d
b c a d
c a b d
。然后,看看哪些是有效的。另外,如果有多个有效的解决方案,您是将每个解决方案输出到单独的行中,还是将它们放在同一行中?只是猜测而已。您可能需要对长度进行排序:
低、中、高
。然后,看看顺序:
lo,hi,mid,d
long-long-int
必须用
%lld
扫描,而不是
%llu
@CraigEstey我只需要为第四面打印一个有效值(我知道可能有多个可能的解决方案)也
max(a,b,c)+1
对于第二个试用示例是57(即56+1),这可能是一个解决方案,所以没关系。我不明白为什么我需要对长度进行排序?从链接的问题页面,对于第二个试用示例
12 34 56
,给定/正确的解决方案是
42
。但是,
max(a,b,c)
是56,而
56-1
不是42。所以,我认为你需要一个更好的算法。我不知道如何解决这个问题,但是,对于长度
a
b
c
,您可能需要注意线段的顺序(例如
a b c d
a c d
b a c d
b c a d
b c a d
c a b d
。然后,看看哪些是有效的。另外,如果有多个有效的解决方案,您是将每个解决方案输出到单独的行中,还是将它们放在同一行中?只是猜测而已。您可能需要对长度进行排序:
低、中、高
。然后,看看顺序:
lo,hi,mid,d
long-long-int
必须用
%lld
扫描,而不是
%llu
@CraigEstey我只需要为第四面打印一个有效值(我知道可能有多个可能的解决方案)也
max(a,b,c)+1
对于第二个试用示例是57(即56+1),这可能是一个解决方案,所以没关系。我不明白为什么我需要对长度进行排序?