Вывод из массива случайного элемента (программа тестирования) - C (СИ)
Формулировка задачи:
#include "stdafx.h"
#include<iostream>
using namespace std;
//--------------масив структур---------------
struct answer
{
char* a;
char* b;
char* c;
char* d;
char* x;
char* key;
};
//-------------------------------------------
void main()
{
//-----------------масив с вопросами-----------------
char** v=new char*[15];
for (int i=0; i<6; i++)
{v[i]=new char[255];}
v[0]="Вопрос0";
v[1]="Вопрос1";
v[2]="Вопрос2";
v[3]="Вопрос3";
v[4]="Вопрос4";
v[5]="Вопрос5";
//--------------------------------------------------
//-----Масив структур (варианты ответов)------------
answer ans[6];
ans[0].a="вариант ответа номер 0";
ans[0].b="вариант ответа номер 1";
ans[0].c="вариант ответа номер 2";
ans[0].d="вариант ответа номер 3";
ans[0].x="правильный ответ";
ans[0].key="ключ";
ans[1].a="вариант ответа номер 0";
ans[1].b="вариант ответа номер 1";
ans[1].c="вариант ответа номер 2";
ans[1].d="вариант ответа номер 3";
ans[1].x="правильный ответ";
ans[1].key="ключ";
ans[2].a="вариант ответа номер 0";
ans[2].b="вариант ответа номер 1";
ans[2].c="вариант ответа номер 2";
ans[2].d="вариант ответа номер 3";
ans[2].x="правильный ответ";
ans[2].key="ключ";
ans[3].a="вариант ответа номер 0";
ans[3].b="вариант ответа номер 1";
ans[3].c="вариант ответа номер 2";
ans[3].d="вариант ответа номер 3";
ans[3].x="правильный ответ";
ans[3].key="ключ";
ans[4].a="вариант ответа номер 0";
ans[4].b="вариант ответа номер 1";
ans[4].c="вариант ответа номер 2";
ans[4].d="вариант ответа номер 3";
ans[4].x="правильный ответ";
ans[4].key="ключ";
ans[5].a="вариант ответа номер 0";
ans[5].b="вариант ответа номер 1";
ans[5].c="вариант ответа номер 2";
ans[5].d="вариант ответа номер 3";
ans[5].x="правильный ответ";
ans[5].key="ключ";
//--------------------------------------------------
char z;
int l;
for (l=0; l<5; l++)
{
//----------ГЕНЕРИРУЕМ СЛУЧАЙНОЕ ЧИСЛО--------------
srand (unsigned(time(NULL)));
int h;
h=rand()%5;
//--------------------------------------------------
cout<<v[h]<<"\n"; //вывод вопроса
cout<<ans[h].a<<"\n";//вывод 1 варианта ответа
cout<<ans[h].b<<"\n";//вывод 2 варианта ответа
cout<<ans[h].c<<"\n";//вывод 3 варианта ответа
cout<<ans[h].d<<"\n";//вывод 4 варианта ответа
cin>>z;
cout<<"\n\n";
}
}b
Жмем ввод. Опять выводится например 3 вопрос. мы вводим желаемый вариант ответа например, мы вводимс
Жмем ввод. и так далее, пока не закончится цикл в данном случае 5 раз. В данный момент все прекрасно работает, но генерируемые вопросы повторяются. Помогите пожалуйста в решении проблемы. P.S. создавал похожую тему с генерацией случайного числа, но в данном примере применить не удалось.Решение задачи: «Вывод из массива случайного элемента (программа тестирования)»
textual
Листинг программы
#include <time.h>
#include <iostream>
int main()
{
setlocale(LC_ALL, "Russian");
srand (unsigned(time(NULL)));
int h, i(0); //задаем 10 вопросов из 15
int mas[15] = {0};
for(;;)
{
h=rand()%15;
if(mas[h])
{
std::cout<<h<<"\tуже был!\n";
continue;
}
std::cout<<"Новый\t"<<h<<'\n';
++i;
mas[h] = 1;
if(i == 10)
break;
}
system("pause");
return 0;
}