2015-05-02 2 views
-2

Я создаю игру в кости, где пользователь катит 3 кости и получает некоторые случайные выходы (до целых 6). Следующим шагом будет добавление этих 3 полученных значений и получение их суммы. Как это достичь? Любое предложение было бы полезно.Добавить и распечатать несколько символов в C

Вот мой исходный код:

//Roll-a-dice Game! 
int main(){ 
    char input1; 
    char input2; 
    char input3; 
    int i; 
    int diceRoll; 
    int sumDice = (int)(input1-'0') + (int)(input2-'0') + (int)(input3-'0'); 

    printf("User's First Input: (Press any key to continue) "); 
    scanf("\n %c", &input1); 

    for(i=0;i<1;i++){ 
     diceRoll = (rand()%6) + 1; 
     printf("%d\n\n", diceRoll); 
    } 

    printf("User's Second Input: (Press any key to continue) "); 
    scanf("\n %c", &input2); 

    for(i=0;i<1;i++){ 
     diceRoll = (rand()%6) + 1; 
     printf("%d\n\n", diceRoll); 
    } 

    printf("User's Third Input: (Press any key to continue) "); 
    scanf("\n %c", &input3); 

    for(i=0;i<1;i++){ 
     diceRoll = (rand()%6) + 1; 
     printf("%d\n\n", diceRoll); 
    } 


    printf("Sum of observations: %d", sumDice); 

    return 0; 
} 

sumDice функция не выводит правильный ответ, и я думаю, что проблема лежит где-то в этой конкретной функции.

+3

Вам необходимо вычислить 'sumDice' * после *, вы свернули кубик, а не раньше. –

+0

Вы вычисляете 'sumDice', прежде чем вы внесете какие-либо данные в переменные. Как вы ожидаете их суммировать, прежде чем вы их получите? Это простой здравый смысл: вы не можете подсчитать деньги в своем кошельке, прежде чем вкладывать деньги в свой кошелек в первую очередь. Это то, что происходит, когда вы пишете код, даже не удосуживаясь прочитать написанное (или скопировать/вставить код от других, не понимая, что он делает). –

+0

Почему вы суммируете символы? –

ответ

0

Судя по даного:

, где пользователь бросает 3 кубика и получает несколько случайных выходов (до целого числа 6). Мой следующий шаг, чтобы добавить эти 3 значения, полученные и получить его сумма

Я предполагаю, что вы хотите:

первой инициализации sumDice в 0:

int sumDice=0; 

затем, в каждый цикл добавить это после diceRoll=rand()... линия:

sumDice+=diceRoll; 

и удалите последнюю линию sumDice= (int)(input-'0')....

1

Логика int sumDice = (int)(input1-'0') + (int)(input2-'0') + (int)(input3-'0'); имеет смысл, но вы должны использовать его после присвоения значений input1, input2 и input3.

Вы получаете неправильный ответ, потому что, когда вы инициализируете sumDice в начале, входные переменные не инициализируются, поэтому в них хранятся случайные значения.

Здесь вы должны положить его:

int sumDice = (int)(input1-'0') + (int)(input2-'0') + (int)(input3-'0'); 
printf("Sum of observations: %d", sumDice); 
+0

Спасибо, я внес изменения в свой код. Кстати, я сделал это так, как вы описали первый раз, после чего я внес некоторые изменения в свой код. К сожалению, я не смотрел назад на свой код перед публикацией. Виноват. – Adivir

+0

@Adivir Добро пожаловать :) – Cubia

+0

@Adivir Не стесняйтесь принимать мое сообщение как оригинальный ответ, если ваша проблема решена. – Cubia

Смежные вопросы