c - 我试图找到四个 int 中最大的一个。与 C. 但程序不工作
问题描述
不同类型的答案即将到来。有时代码可以正常工作。有时不是。我找不到解决方案。
#include<stdio.h>
int max_of_four (int a, int b, int c,int d)
{
if(a>b)
{
if(a>c)
{
if(a>d)
{
printf("%d",a);
}
else
{
printf ("%d", d);
}
}
}
else if (b>c)
{
if (b>d)
{
printf ("%d", b);
}
else
printf ("%d", d);
}
else if (c>d)
{
printf("%d", c);
}
else("%d",d);
return a, b,c,d;
}
int main (void)
{
int a, b, c, d;
scanf("%d %d %d %d", &a, &b, &c, &d);
int ans = max_of_four(a, b, c, d);
printf("%d", and);
return 0;
}
解决方案
“有时代码可以工作。有时不行。我找不到解决方案。”
代码中的逻辑很难遵循,这使得很容易错过看到对逻辑错误的贡献。
为了简化问题,这种方法将主要的重复逻辑封装成一个宏,然后重复调用。(请注意,这里也可以使用一个函数,在清理代码方面具有类似的好处。)
//Note: NOT for use with incremented arguments, (eg. MAX(x++, y++))
#define MAX(x, y) (((x) > (y)) ? (x) : (y))
int max_of_four (int a, int b, int c,int d)
{
int max=0;
max = MAX( a, b);
max = MAX(max, c);
max = MAX(max, d);
return max;
}
printf()
如果 OP 需要查看中间结果,可以重新添加语句,但示例保持原样以突出其简单性。
推荐阅读
- javascript - TypeError: Object(...) is not a function - Can't connect redux with wrapper function in react
- postgresql - 无法连接到服务器:连接被拒绝 - pgadmin4 - postgresql
- email - 重试在 MailWizz 中发送交易电子邮件
- php - 如何生成对象键?
- java - 错误:也许您在 JRE 而不是 JDK 上运行?(Ubuntu Bash 外壳)
- r - 如何在 R 编程的数据框中使用 _for_
- flutter - Flutter Pageview - 滚动到下一个或上一个项目
- c# - Listview 结果问题
- netcdf - 如何为快速地理空间参考图准备 .nc 文件?
- javascript - 如何处理 firebase 云函数 api oncall 的错误?