#include<stdio.h>
#include<string.h>
#define F 1000 //定义选项的最大数量
void readWord();
void chooseOutput();
void readTopic();
char choose1[F],choose3[F],line[1024];
char *choose2[F];
int main()
{
readTopic();
readWord();
chooseOutput();
printf("正确答案为%s",choose1);
return 0;
}
void chooseOutput()
{
int j = 0, k = 0;
printf("请输入你的答案:\n");
for (int i = 0; i < (strlen(choose1)); i++)
{
choose2[i] = &choose3[i];
scanf("%c", choose2[i]); //获取你的答案
strupr(choose2[i]); //将输入的字母转化为大写字母
if (choose1[i] == choose3[i])
{
j++;
printf("你答对了第%d题\n", i + 1); //输出答对的题号并记录答对的个数
}
else
{
k++;
printf("你答错了第%d题\n", i + 1); //输出答错的题号并记录答错的个数
}
}
printf("你答对了%d个题,答错了%d个题\n", j, k); //输出答对个数和答错个数
}
void readWord()
{
FILE *fin;
fin= fopen("write_choose.txt","r"); //打开文件并读取选项
if(fin==NULL)
{
printf("文件打开时发生错误!\n");
}
fscanf(fin,"%s",choose1); //将选项保存到choose1中
strupr(choose1); //将choose1转化为大写
fclose(fin); //关闭文件
printf("\n共%d个题,开始答题\n", strlen(choose1));
}
void readTopic() //读取题目
{
FILE *fp = fopen("write_topic.txt", "r");
if (fp == NULL)
{
printf("文件打开时发生错误!\n");
}
while (fgets(line, 1024, fp) != NULL)
{
printf(line); //打印题目
}
fclose(fp);
}
运行时需要在程序所在项目新建两个txt文本,一个存题目,一个存选项。
纪念一下自己写的第一个有实际意义的程序。