Вывод из массива случайного элемента (программа тестирования) - 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; }
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д