【发布时间】:2021-06-07 18:25:08
【问题描述】:
我正在尝试为“公牛和奶牛”游戏编写一个程序。 游戏说明: 该程序有一个秘密的 4 位数字。 用户必须猜测数字。 如果号码是:1235 以及用途猜测:1592 多头数量为 1, 因为用户猜到了一个正确的数字和它的位置, 奶牛的数量是3, 因为用户只猜数字。
我正在尝试进行猜测功能,但输出很奇怪。它仍然不是一个函数,只是试图让它先工作。 我必须使用一个字符数组和一个整数。用户需要选择键入 0 作为数字之一。
代码:
#include <stdio.h>
#include <conio.h>
/A function that gets 4 chars from the user and checks if they're valid
int main()
{
char guess[5]= {0};
int i=0;
printf("please enter a 4 digit interger\n");
for (i=0;i<4; i++) {
scanf("%d", &guess[i]);
printf("your guess is:");
for (i=0;i<4; i++) {
printf("%d", guess[i]);
}
}
getch();
return 0;
}
奇怪的输出是:
Your guess is: -1281300
为什么不显示用户获得的数字? 非常感谢您的帮助!
【问题讨论】:
-
如果您想要一个整数作为输入,则将其读入
int变量。如果您希望它作为字符串 - 然后使用%s格式说明符读取它。如果要逐字符读取,则格式说明符为%c -
%d是char的错误说明符。您希望%c或%s一次读取整个字符串。 -
您忽略了 scanf 的返回值,后果自负。在这种情况下,阅读、输出和检查它会告诉你很多关于哪里出了问题。
-
所以有一个来自
[0,9]的四个随机 IID 的序列,你通过预言机猜测我们得到了正确序列匹配的数量(公牛)和正确集合匹配的数量(牛) ? -
欢迎您!如果您是新手,您可以通过阅读 the tour 获得您的第一个“徽章”,并且可能会发现此主题和帮助中心的其他主题也很有用:How do I ask a good question?
标签: c