arrays - 如何找到两个数组具有相同数字的位置?
问题描述
所以我试图用 C 语言做一个猜测程序,用户必须输入 5 个数字,计算机生成 5 个随机数。我的用户输入数字的代码是这样的:
for (int i = 0; i < NUM_SIZE; ++i) {
scanf("%d", &(userGuess[i]));
}
我想输出用户输入正确的位置,例如,如果用户输入2 3 4 5 7
和计算机的 5 个随机数是2 3 9 8 7
它会打印出来correct position(s): 0, 1, 4
这是我目前尝试过的,但它只能打印0, 1
,当它尝试打印一个数字时在它像我放的示例中那样跳过之后,它会打印 0、0 和一个长随机数。
for (int i = 0; i < NUM_SIZE; ++i){
if (userGuess[i] == winNum[i]) {
matchedPos[i] = i;
}
}
解决方案
问题是你从来没有初始化matchedPos
用户没有猜对的元素。您需要初始化所有数组元素。
i
此外,放入数组没有意义matchedPos
,因为它与数组索引相同。相反,分配0
或1
取决于猜测是否匹配。然后,您只需打印包含1
.
int matchedPos[NUM_SIZE];
for (int i = 0; i < NUM_SIZE; i++) {
matchedPos[i] = userGuess[i] == winNum[i];
}
printf("Correct guesses: ");
for (int i = 0; i < NUM_SIZE; i++) {
if (matchedPos[i]) {
printf("%d ", i);
}
printf("\n");
推荐阅读
- google-analytics-api - Google Analytics API - 如何在没有管理员身份的情况下获取访问令牌
- swift - 在预览时增加函数中的变量会产生错误(swiftui)
- java - 有没有办法获取一个类的所有成员类并循环它们以执行方法?
- python-3.x - 使用python将excel工作表作为对象插入到excel工作表中
- neo4j - Cypher Query 返回的边缘类型比要求的多
- python - raise RuntimeError(f"Directory '{directory}' does not exist") RuntimeError: Directory 'static/' does not exist from import fitz
- django - 在 django 中合并两个被注释的查询集
- c++ - 为什么将小浮点数与零进行比较会产生随机结果?
- r - 使用 R 中 data.table 中的 max() 有条件地更改列的内容
- c++ - 是否可以在 lex 中有一个动态字符类?