c - c函数比较两个不同数组的最高值(适用于扑克中的平局高牌手)
问题描述
#include <stdio.h>
int highcard (int array[])
{
int i, j;
int largest = array[0];
for (i=0; i<5; i++)
{
if (largest < array[i])
{
largest = array[i];
}
}
printf("largest element is %d", largest);
return largest;
}
int main()
{
int hand1[5]={8, 10, 6 , 4, 2};
int hand2[5]={13, 5, 3, 9, 12};
int largest;
highcard(hand1[5]);
int largest1 = largest;
return largest1;
highcard(hand2[5]);
int largest2 = largest;
return largest2;
if (largest1 < largest2)
{
printf("winner: hand2");
}
else
{
printf("winner: hand1");
}
return 0;
}
我正在尝试开发一个程序,可以在扑克中打破两个高牌手。为此,我将卡片值“转换”为数字(2=2 ... A=14),对于这种特定情况,最大数组大小将始终为 5(5 张卡片)。我的问题是当应用于两个不同的数组时如何比较相同函数的返回值?
我的意思是:
- 我有手(数组)1
- 我有手2
- 我确定hand1的最大数量并返回它
- 我为hand2做同样的事情
- 在 main() 中,我想比较应用于 hand1 和 hand2 的 highcard 的返回(最大数)
但是,如何在 main() 中指定函数 highcard 的特定返回值,当应用于 hand1 然后 hand2 并保持两个返回分开?
这是我到目前为止所尝试的。
PS:这是一个大学/学院项目,我这个学期才开始编程,所以对我的错误/错误以及如何纠正它们的任何详细解释将非常感激:)
解决方案
你有几个误解。
highcard(hand1[5]);
在这里,您要调用函数 highcard 并传入 5 元素数组hand1
。为此,请勿在括号中指定尺寸。仅当您声明数组时才有效。相反,您将第六个元素(hand1
第一个元素的索引为 0)传递给函数。该元素不存在。您还应该收到警告,因为整数不是数组;参数类型不匹配。
return largest1;
在这里,您可能想在 中存储一些东西largest1
,但您实际上要做的是从具有给定值的函数返回。这意味着您离开当前功能。离开main
意味着您停止程序。您不需要 a return
,只需存储值即可。
int largest1 = largest;
在这里,您尝试从 访问变量largest
,highcard
但 thzat 变量是本地变量,因此对您的函数highcard
不可见。main
你largest
看到的只是一个不相关的、未初始化的变量。
您可以通过像这样分配函数调用的结果来访问从函数返回的值。您的main
函数应如下所示:
int main(void)
{
int hand1[5] = {8, 10, 6 , 4, 2};
int hand2[5] = {13, 5, 3, 9, 12};
int largest1 = highcard(hand1);
int largest2 = highcard(hand2);
if (largest1 < largest2) {
printf("winner: hand2");
} else {
printf("winner: hand1");
}
return 0;
}
推荐阅读
- r - dplyr:在增长 data_frame 时添加多个滞后
- kubernetes - 带有 yaml 文件的 Helm Config-Map
- c# - 将 Sharepoint 中的当前字段数据保存到列表的另一个实例
- grep - 查找具有特定文本的文件的名称。此命令可以搜索目录和所有子目录以找到所有匹配项
- java - 在 Spring API 中记录请求和响应
- function - 非图求解器中的过滤函数
- if-statement - 将此公式转换为数组公式
- c# - 无法将“System.DBNull”类型的对象转换为“System.Int32”类型的 ASP.NET
- json - JSON 模式验证 POST 与 GET
- android - 使用新的 Android BottomAppBar 实现 Android Jetpack Navigation 组件