【发布时间】:2021-05-21 00:30:59
【问题描述】:
我正在尝试编写一个代码,其中用户有 5 次尝试猜测一个数字,如果 Winning_order 中的 3 个数字系列中的任何一个,那么两个 for 循环都会中断。 usersInputs 存储用户输入以与Winning_order 进行比较。例如,如果用户输入数字1,2,3 或1,2,4,5,3,则循环将打印There is a Correlation,for 循环将停止。如果输入是7,8,9,3,2,因为Winning_order 中没有3 个数字,则循环将停止。 match_arrays 函数存在问题,如果 if statement 有效,我不知道如何停止嵌套的 for 循环。
检查函数是否具有相关性
int match_arrays(int *arr1, int *arr2, int len) {
for (int p = 0; p < len; p++) {
if (arr1[p] != arr2[p]) {
return 0;
}
}
return 1;
}
main() 函数
int main(void)
{
int Winning_order[3][3] = {{1,2,3}, {1,4,7}, {2,5,8}};
int input = 0;
int usersInputs[5] = {0};
for (int i = 0; i <= 4; i++){
printf("\nPlayer input: ");
scanf("%d", &input);
usersInputs[i] = input;
for (int p = 0; p < 5; p++) {
if (match_arrays(usersInputs, Winning_order[p], 3)) {printf("There's a Corelation");}
}}
return 0;
}
【问题讨论】:
-
C 代码请使用更正统的缩进样式。很难阅读您的布局。单行上有多个右大括号是禁止的;同一缩进级别的多个连续右大括号是另一个(未显示)。
-
Winning_order[p]这不可能。p上升到4而只有0, 1, 2是Winning_order的有效索引。
标签: arrays c function for-loop input