これは10個のランダムな正の整数からなる宝くじ番号を作成するプロジェクトです。ユーザーは正しい数字を推測するまで推測することになっています。すべてのコードがうまく見えますが、プログラムを実行して番号を入力すると、このMSVSランタイムライブラリエラーが表示されます。私はかなりプログラミングに新しいので、それが何を意味するか知りません。ヘルプは非常に高く評価されるだろう!C++宝くじ推測プログラムを作成
MAIN.CPP
#include <iostream>
#include <cmath>
#include <ctime>
#include "Lottery.h"
using namespace std;
int main() {
const int size = 9; //declare variables
int win[size];
int g;
srand(time(NULL));
assign(win, size);
draw(win, size);
g = entry();
if (check(win,size,g) == true) {
cout << "Congradulations! You have won the lottery!" << endl;
}
else {
cout << "Try again!" << endl;
}
printOut(g);
}
Lottery.cpp
#include <iostream>
#include <cmath>
#include "Lottery.h"
using namespace std;
int entry() {
int guess;
cout << "Enter a number from 0 to 99." << endl;
cin >> guess;
return guess;
}
void assign(int w[], int s) {
for (int i = 0; i < s; i++) {
w[s] = -1;
}
}
bool check(int w[], int s, int g) {
for (int i = 0; i < s; i++) {
if (g == w[i]) {
return true;
}
}
return false;
}
void draw(int w[], int s) {
for (int i = 0; i < s; i++) {
int tmp = rand() % 100;
if (check(w, s, tmp)) {
i--;
}
else
w[i] = tmp;
}
}
void printOut(int g) {
cout << "Numbers you have chosen:" << " " << g << endl;
}
Lottery.h
#ifndef LOTTERY_INCLUDED
#define LOTTERY_INCLUDED
void assign(int[], int);
bool check(int[], int, int);
void draw(int[], int);
int entry();
void printOut(int);
#endif //LOTTERY
Visual Studioでプログラムを停止すると、デバッガを切断して何が起きたかを見ることができます。私はこれを行うことを強くお勧めします。缶詰の答えを手渡すよりはるかに教育的です。 – user4581301
エラーを作成しようとしていません。 1つを解決しようとしている!タイトルにタイプミスがありました。 –
トピックを非表示:乱数ジェネレータをシードするには、 'main'の先頭近くにある' srand'を呼び出すことをお勧めします。 – user4581301