我对编程非常陌生并试图仅使用数字制作一个基本的美式轮盘游戏,一个数字显示在板上是“00”,我试图将“00”分配给结构中的变量数组,我不知道怎么做这个特定的数字,因为它读取为“0”。这是我用来设置的代码,抱歉可能是非常愚蠢的问题,但我一直在搜索几个小时,只有极其复杂的答案已经出现,我无法理解(尽管我已经尝试过了) )。由于我正在使用的非常基本的编译器输入需要读取,输入将是“数字编号编号编号编号”。
#include <stdio.h>
#include <string.h>
int main( void )
{
struct bet /* Setting up a structure array to store input values */
{
float number;
float betValue;
} playerBet[4];
scanf("%f %f %f %f %f %f %f %f", &playerBet[0].number, &playerBet[0].betValue, &playerBet[1].number, &playerBet[1].betValue,&playerBet[2].number, &playerBet[2].betValue,&playerBet[3].number, &playerBet[3].betValue);
}
非常感谢任何帮助!
答案 0 :(得分:0)
对于浮点数和整数,0
和00
无法区分。正如@Weather Vane在评论中指出的那样,您可以使用sentinel value来区分双零。您还可以将每个数据点作为字符串输入(因为"0" and "00"
在被解释为字符数组时被区分为不同。)
对于这些简单(可能是家庭作业问题)的小型项目,您可以使用atoi()
将字符串转换为数字值来解析输入。
您可能应该使用整数在内部建模数据。这将确保您在检查输入的均匀度或奇怪度时不会遇到问题。您的数据结构似乎不需要建模浮点数据。
将结构元素number
设为整数,betValue
设float
:
int number;
float betValue;
输入数字作为字符串并解析它:
char input_number[3]; // 2 spaces plus null terminator
int number; // numeric version (after parsing)
float bet_value; // float value for bet
scanf("%s %f", input_number, &bet_value);
if (input_number[0] == '0' && input_number[1] == '0') {
number = 37;
} else {
number = atoi(input_number);
}
// Assign them to structure
playerBet[0].number = number;
playerBet[0].betValue = bet_value;