编写一个简单答题系统(填空题)
作为接触C语言没多久的小白,这道题属实把我难麻了
编写中遇到的问题:
1.随机不重复的出题
2.变色
解决过程:
1.:
一 . 学习 rand 和 srand函数
二 . 用以下代码实现随机出的数不重复:
srand((unsigned)time(NULL));
int a[20],i,j;
for(i=0;i<20;i++)
{
a[i]=rand()%20+1;
for(j=0;j<i;j++)
if(a[i]==a[j]){i--;break;}
}
此时a数组乱序装着1到20二十个数
三 . 把所有题目数据写进一个函数,该函数接收主函数传来的题号,接到哪个题号就出哪道题
int tiku(int c,int *p,int i)
{printf("\n第%d题:",i+1);
color(3);
if(c==1)
{
printf("\n1+1=?\n请输入你的答案:");color(7);
scanf("%s",&t[i].A);
if(strcmp(t[i].A,"2")==0)
{color(9);printf("正确!答案是:2\n");(*p)++;}
else
{color(4);printf("错误,答案是:");color(9);printf("2\n");}
}
if(c==2)
{...}
...
}
主函数用循环将a数组中的元素(即题号)依次传进tiku函数,实现随机不重复出题
for(i=0;i<20;i++)
{
tiku(a[i],&count,i);color(6);
printf("%s",name);color(14);
printf("同学,你已经答对%d道题\n",count);
}
2. :
明显缺陷:
题目数一多运行就变得缓慢
欢迎大佬补充