简体   繁体   English

Int以随机的7位数字组合返回

[英]Int being returned as a random 7 digit combination

I'm trying to write a program for my C++ class and I've run into a strange problem. 我正在尝试为我的C ++类编写程序,但遇到了一个奇怪的问题。 Returning the int "dice" always picks a random combinations of numbers and the letter c for some reason. 返回int“ dice”总是出于某种原因选择数字和字母c的随机组合。 At first I thought my random number generator was wrong, but even if I set dice=5 it is returned as the same similar random characters. 起初我以为我的随机数生成器是错误的,但是即使我将dice = 5设置为它,也会以相同的相似随机字符形式返回。 Here's the full code, but the relevant part is just the int dice and main as far as I can tell. 这是完整的代码,但据我所知,相关部分只是int骰子和main。

#include "stdafx.h"
#include <iostream>
#include <ctime>
#include <iomanip>
#include <cmath> 
#include <fstream>
#include <cstdlib>
using namespace std;
int score, devilScore, tempScore, devilTempScore;
char input() {
    char c;
    bool valid=0;

    while (!valid) {
        cout << "[p]ass, [r]oll, or [f]orfeit: ";
        cin >> c;
        if (c == 'p' || c == 'r' || c == 'f') valid = true;
        else cout << "Input invalid\n";
    }
    return c;
}

int dice() {
    int dice;
    dice = (rand() % 6) + 1;
    return dice;
}


void printScreen() {
    switch(1){
    case 1: cout << "         Player                 Devil \n";
    case 2: cout << "          100                    100 \n";
    case 3: cout << "       "; if (score <= 99 && score >= 95) { cout << score << ">"; }
            else { cout << "   "; }cout << "95                    95"; if (devilScore <= 99 && devilScore >= 95) { cout << "<" << devilScore << " \n"; }
            else { cout << " \n"; }
    case 4: cout << "       "; if (score <= 94 && score >= 90) { cout << score << ">"; }
            else { cout << "   "; }cout << "90        die        90"; if (devilScore <= 94 && devilScore >= 90) { cout << "<" << devilScore << " \n"; }
            else { cout << " \n"; }
    case 5: cout << "       "; if (score <= 89 && score >= 85) { cout << score << ">"; }
            else { cout << "   "; }cout << "85        ___        85"; if (devilScore <= 89 && devilScore >= 85) { cout << "<" << devilScore << " \n"; }
            else { cout << " \n"; }
    case 6: cout << "       "; if (score <= 84 && score >= 80) { cout << score << ">"; }
            else { cout << "   "; }cout << "80        |" << dice << "|        80"; if (devilScore <= 84 && devilScore >= 80) { cout << "<" << devilScore << " \n"; }
            else { cout << " \n"; }
    case 7: cout << "       "; if (score <= 79 && score >= 90) { cout << score << ">"; }
            else { cout << "   "; }cout << "75        ___        75"; if (devilScore <= 79 && devilScore >= 75) { cout << "<" << devilScore << " \n"; }
            else { cout << " \n"; }
    case 8: cout << "       "; if (score <= 74 && score >= 70) { cout << score << ">"; }
            else { cout << "   "; }cout << "70                   70"; if (devilScore <= 74 && devilScore >= 70) { cout << "<" << devilScore << " \n"; }
            else { cout << " \n"; }
    case 9: cout << "       "; if (score <= 69 && score >= 65) { cout << score << ">"; }
            else { cout << "   "; }cout << "65                   65"; if (devilScore <= 69 && devilScore >= 65) { cout << "<" << devilScore << " \n"; }
            else { cout << " \n"; }
    case 10: cout << "       "; if (score <= 64 && score >= 60) { cout << score << ">"; }
             else { cout << "   "; }cout << "60                   60"; if (devilScore <= 64 && devilScore >= 60) { cout << "<" << devilScore << " \n"; }
             else { cout << " \n"; }
    case 11: cout << "       "; if (score <= 59 && score >= 55) { cout << score << ">"; }
             else { cout << "   "; }cout << "55                   55"; if (devilScore <= 59 && devilScore >= 55) { cout << "<" << devilScore << " \n"; }
             else { cout << " \n"; }
    case 12: cout << "       "; if (score <= 54 && score >= 50) { cout << score << ">"; }
             else { cout << "   "; }cout << "50                   50"; if (devilScore <= 54 && devilScore >= 50) { cout << "<" << devilScore << " \n"; }
             else { cout << " \n"; }
    case 13: cout << "       "; if (score <= 49 && score >= 45) { cout << score << ">"; }
             else { cout << "   "; }cout << "45                   45"; if (devilScore <= 49 && devilScore >= 45) { cout << "<" << devilScore << " \n"; }
             else { cout << " \n"; }
    case 14: cout << "       "; if (score <= 44 && score >= 40) { cout << score << ">"; }
             else { cout << "   "; }cout << "40                   40"; if (devilScore <= 44 && devilScore >= 40) { cout << "<" << devilScore << " \n"; }
             else { cout << " \n"; }
    case 15: cout << "       "; if (score <= 39 && score >= 35) { cout << score << ">"; }
             else { cout << "   "; }cout << "35                   35"; if (devilScore <= 39 && devilScore >= 35) { cout << "<" << devilScore << " \n"; }
             else { cout << " \n"; }
    case 16: cout << "       "; if (score <= 34 && score >= 30) { cout << score << ">"; }
             else { cout << "   "; }cout << "30                   30"; if (devilScore <= 34 && devilScore >= 30) { cout << "<" << devilScore << " \n"; }
             else { cout << " \n"; }
    case 17: cout << "       "; if (score <= 29 && score >= 25) { cout << score << ">"; }
             else { cout << "   "; }cout << "25                   25"; if (devilScore <= 29 && devilScore >= 25) { cout << "<" << devilScore << " \n"; }
             else { cout << " \n"; }
    case 18: cout << "       "; if (score <= 24 && score >= 20) { cout << score << ">"; }
             else { cout << "   "; }cout << "20                   20"; if (devilScore <= 24 && devilScore >= 20) { cout << "<" << devilScore << " \n"; }
             else { cout << " \n"; }
    case 19: cout << "       "; if (score <= 19 && score >= 15) { cout << score << ">"; }
             else { cout << "   "; }cout << "15                   15"; if (devilScore <= 19 && devilScore >= 15) { cout << "<" << devilScore << " \n"; }
             else { cout << " \n"; }
    case 20: cout << "       "; if (score <= 14 && score >= 10) { cout << score << ">"; }
             else { cout << "   "; }cout << "10                   10"; if (devilScore <= 14 && devilScore >= 10) { cout << "<" << devilScore << " \n"; }
             else { cout << " \n"; }
    case 21: cout << "       "; if (score <= 9 && score >= 5) { cout << score << ">"; }
             else { cout << "   "; }cout << " 5                   5 "; if (devilScore <= 9 && devilScore >= 5) { cout << "<" << devilScore << " \n"; }
             else { cout << " \n"; }
    case 22: cout << "       "; if (score <= 4 && score >= 0) { cout << score << ">"; }
             else { cout << "   "; }cout << " 0                   0 "; if (devilScore <= 4 && devilScore >= 0) { cout << "<" << devilScore << " \n"; }
             else { cout << " \n"; }

    }






}


int main() {
    srand (time(NULL));
    int score = 30;
    int devilScore = 25;

    cout << dice << endl;
}

You are printing the address of the function int dice() ; 您正在打印int dice()函数的地址; if you want to call it, should add parenthesis: 如果要调用它,应添加括号:

cout << dice() << endl;

Replace (print function's address) 替换(打印功能的地址)

cout << dice << endl;

with (call a function and print result) 与(调用函数并打印结果)

cout << dice() << endl;

The rest of your code seems to work OK. 您的其余代码似乎可以正常运行。 You should also replace NULL with nullptr - a modern way to express null pointer. 你也应该更换NULLnullptr -一个现代的方式来表达空指针。 This also removes a compiler warning. 这也消除了编译器警告。

BTW: The printScreen function is not used. 顺便说一句:不使用printScreen功能。 When asking a question, you should give us a minimal working example. 提出问题时,您应该给我们一个最小的工作示例。 This is not minimal. 这不是最小的。

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM