4个数字中第二大...我收到错误"expected : before )"
2nd greatest among 4 numbers...iam getting the error as "expected : before )"
#include<stdio.h>
#include<conio.h>
我没有得到预期的输出:before)
int main() {
int a,b,c,d,k;
scanf("%d %d %d %d",&a,&b,&c,&d);//input
k=(((a>b && a>c && a>d) ? (((b>c && b>d) ? b : ((c>b && c>d) ? c:d)))) : ((b>a && b>c && b>d) ? (((a>c && a>d) ? a : ((c>a && c>d) ? c:d)))) : (((c>a && c>b && c>d) ? (((a>b && a>d) ? a : ((b>a && b>d) ? b:d)))) : ((d>a && d>b && d>c) ? (((a>b && a>c) ? a : ((b>c && b>a) ? b:c))))));
printf("%d",k);
return 0;}
我认为三元运算符是某种养眼的。
这真的让我想起了某种眼癌(无意冒犯)。
更好的解决方案(使用任意数量的变量)
如果我是对的,你想从a
, b
, c
和d
中提取第二大数,并将其保存在k
中。试试这个:
int compare_int(const void* a, const void* b)
{
int int_a = *((int*)a);
int int_b = *((int*)b);
if (int_a == int_b)
return 0;
else if ( int_a < int_b )
return -1;
else
return 1;
}
int main()
{
int value[4];
// set values in any order:
value[0] = 20; //second greatest
value[1] = -36;
value[2] = 294;
value[3] = 3;
qsort(value, 4, sizeof(int), compare_int);
// now the array is sorted by value.
// tho the second greatest number is in value[2].
printf("%dn", value[2]);
return 0;
}
重新格式化你的代码
不过. .我重新格式化了你的代码:
k = (((a > b && a > c && a > d) ? (((b > c && b > d) ? b : ((c > b && c > d) ? c : d)))) : ((b > a && b > c && b > d) ? (((a > c && a > d) ? a : ((c > a && c > d) ? c : d)))) : (((c > a && c > b && c > d) ? (((a > b && a > d) ? a : ((b > a && b > d) ? b : d)))) : ((d > a && d > b && d > c) ? (((a > b && a > c) ? a : ((b > c && b > a) ? b : c))))));
等于:
k = (
// misplaced (
(a > b && a > c && a > d) ?
(
(
(b > c && b > d) ? b :
(
(c > b && c > d) ? c : d
)
)
)
// misplaced )
:
// misplaced (
(b > a && b > c && b > d) ?
(
(
(a > c && a > d) ? a :
(
(c > a && c > d) ? c : d
)
)
)
// misplaced )
:
(
// misplaced (
(c > a && c > b && c > d) ?
(
(
(a > b && a > d) ? a :
(
(b > a && b > d) ? b : d
)
)
)
// misplaced )
:
(
(d > a && d > b && d > c) ?
(
(
(a > b && a > c) ? a :
(
(b > c && b > a) ? b : c
)
)
)
// missing
// :
// (
// expression
// )
)
)
);
容易啊?
现在你可以看到你甚至放错了一些(
和)
还有一些:
相关文章:
- 如何修复此错误"expected primary expression before 'int'"?
- C++:将运算符作为参数传递会导致错误"expected an identifier"
- C 和 C++:带有错误"Expected unqualified-id"的数据文件
- 外部"C"导致错误"expected '(' before string constant"
- 错误 "expected initializer before 'using'" C++
- C++错误"expected initialiser before '[macroname]'"
- 在2D伊辛模型上工作。C++新手。我在第 23 行收到错误"expected unqualified-id before '{' token"
- 简单继承实现中的构建错误"expected primary-expression before 'float' "来源
- C++嵌套继承错误"expected class-name before ‘{’ token"
- 矩阵类实验中的编译错误 - "expected initializer before ‘.’ token"
- 尝试编译时出现错误"expected unqualified-id before ‘{’ token {"
- 调试前C++错误"expected unqualified-id '(' token"
- C++ 错误"expected an unqualified id before ')' token"(第 1 行)
- GCC 错误"expected ')' before '[' token"
- 如何跟踪LLVM验证功能错误"Expected no forward declarations!"?
- 4个数字中第二大...我收到错误"expected : before )"
- 我无法弄清楚C++语法错误"expected `;' before ‘{’ token"
- C++编译错误"expected constructor, destructor, or type conversion before ‘class’"
- C++ 代码中的错误 "expected constructor, destructor, or type conversion before ‘(’ token" 和"no matching fun
- 创建 MB 库,错误"expected an identifier"