Кароче,посоны,почему рандом показывает тут числа только 2 и 8?Как это исправить?Кто будет ругаться из-за Char'ов или If'ов тот - плохой человек.Char'ы нужны для Русских букв (Set locale не катит,потому что выводится не только в cout но и на проверку в IF),а на счет If'ов - мне было лень делать циклы.Код: Код: #include <iostream> #include <windows.h> #include <conio.h> using namespace std; int a,b,result,null; int main() { null = 2; char trener[133]; // Начальное CharToOem("Хотите потренировать себя в быстроте вычислений простых примеров на сумму?Тогда эта программа для вас.Автор - AleKill", trener); cout << trener << endl; char gotovv[70]; // Готов CharToOem("Как будете готовы напишите Готов или Готова с большой буквы.", gotovv); cout << gotovv << endl; char gotov[6]; CharToOem("Готов", gotov); char gotova[7]; CharToOem("Готова", gotova); char vg[7]; cin >> vg; // Введите Готов / Готова if (strcmp(vg,gotov)==0 || strcmp(vg,gotova)==0) { a = rand() %10 +1; b = rand() %10 +1; cout << a << " + " << b << " = "; cin >> result; if (a + b == result) { char verno[7]; CharToOem("Верно!", verno); null = null + 1; cout << verno << endl; } else { char neverno[9]; CharToOem("Неверно!", neverno); cout << neverno << endl; } } if (strcmp(vg,gotov)==0 || strcmp(vg,gotova)==0) { a = rand() %10 +1; b = rand() %10 +1; cout << a << " + " << b << " = "; cin >> result; if (a + b == result) { char verno[7]; CharToOem("Верно!", verno); null = null + 1; cout << verno << endl; } else { char neverno[9]; CharToOem("Неверно!", neverno); cout << neverno << endl; } } if (strcmp(vg,gotov)==0 || strcmp(vg,gotova)==0) { a = rand() %10 +1; b = rand() %10 +1; cout << a << " + " << b << " = "; cin >> result; if (a + b == result) { char verno[7]; CharToOem("Верно!", verno); null = null + 1; cout << verno << endl; } else { char neverno[9]; CharToOem("Неверно!", neverno); cout << neverno << endl; } } char endresult[14]; CharToOem("Ваша оценка: ", endresult); cout << endresult << null << endl; char protv[9]; CharToOem("Ошибок: ", protv); cout << protv << 5 - null << endl; char thx[38]; CharToOem("Автор - AleKill.Привет,devs.", thx); cout << thx; getch(); return 0; }
напиши свою функцию рандома, например: Код: int myRand(int max) { static int randomizer = GetTickCount(); randomizer ^= 0x05309f61; randomizer += GetTickCount(); randomizer = randomizer + (randomizer / 1000); randomizer &= 0x7fffffff; return (randomizer % max); }
Мне кажется,есть решение по проще,для решения такой простой задачи слишком много всего придется задействовать
Да и какая-то библиотека вроде есть для этого,давно не программировал просто,теперь вспоминаю потихонечку.
Если стандартная библиотека по каким-то причинам не выполняет возложеной задачи, или программиста не устраивает предложеное решение, есть два варианта: 1. написать свой аналог, удовлетворяющий требованиям 2. пытатся понять, что зделано не так, и если это не удалось - искать другие решения В данном случае быстрее написать аналог, нежели разбирать в чем ошибка.
Надо пытаться все делать проще,спасибо гуглу за это,нашел. Если кому надо,подключаем #include <time.h> и в начале мэйна srand(time(NULL));
На написание функции ушло около минуты, на поиски в гугле и вкуривание сути может уйти больше времени. Да и не всегда в гугле есть решение нужной задачи.
Ну раз у человека по началу возникли с ним проблемы, что сперва надо инициализировать и т.д... Чем мой вариант генератора хуже?
Интересно, а как "хороший" рандом отличить от "плохого"? Я думаю ни для кого не секрет, что в некоторых случаях нужен спецефический рандом, например, для программирования движков азартных игр - иначе казино уйдёт в минус со стандартным рандомом (есть схемы, и вполне работоспособные, которые позволяют определить ставку, при которой будет максимальный выигрыш - работает во всех нубодвижках). Всё зависит от целей.