这是背单词系统中的一部分,需要用户从上次背到的地方开始做选择题(我想创建一个单独文档存储背到的单词编号 ),统计每个单词的正确率和出现频率,但是老是出错。没法问到身边的人,qwq
1>已启动生成: 项目: 第十一章复习, 配置: Debug Win32
1>生成启动时间为 2023/4/14 11:39:01。
1>InitializeBuildStatus:
1> 正在对“Debug\第十一章复习.unsuccessfulbuild”执行 Touch 任务。
1>ClCompile:
1> 第十一章复习.c
1>d:\program files (x86)\microsoft visual studio 10.0\vc\include\cmath(19): error C2061: 语法错误: 标识符“acosf”
1>d:\program files (x86)\microsoft visual studio 10.0\vc\include\cmath(19): error C2059: 语法错误:“;”
1>d:\program files (x86)\microsoft visual studio 10.0\vc\include\cmath(19): error C2061: 语法错误: 标识符“asinf”
1>d:\program files (x86)\microsoft visual studio 10.0\vc\include\cmath(19): error C2059: 语法错误:“;”
1>d:\program files (x86)\microsoft visual studio 10.0\vc\include\cmath(20): error C2061: 语法错误: 标识符“atanf”
1>d:\program files (x86)\microsoft visual studio 10.0\vc\include\cmath(20): error C2059: 语法错误:“;”
1>d:\program files (x86)\microsoft visual studio 10.0\vc\include\cmath(20): error C2061: 语法错误: 标识符“atan2f”
1>d:\program files (x86)\microsoft visual studio 10.0\vc\include\cmath(20): error C2059: 语法错误:“;”
1>d:\program files (x86)\microsoft visual studio 10.0\vc\include\cmath(20): error C2061: 语法错误: 标识符“ceilf”
1>d:\program files (x86)\microsoft visual studio 10.0\vc\include\cmath(20): error C2059: 语法错误:“;”
1>d:\program files (x86)\microsoft visual studio 10.0\vc\include\cmath(21): error C2061: 语法错误: 标识符“cosf”
1>d:\program files (x86)\microsoft visual studio 10.0\vc\include\cmath(21): error C2059: 语法错误:“;”
1>d:\program files (x86)\microsoft visual studio 10.0\vc\include\cmath(21): error C2061: 语法错误: 标识符“coshf”
1>d:\program files (x86)\microsoft visual studio 10.0\vc\include\cmath(21): error C2059: 语法错误:“;”
1>d:\program files (x86)\microsoft visual studio 10.0\vc\include\cmath(21): error C2061: 语法错误: 标识符“expf”
1>d:\program files (x86)\microsoft visual studio 10.0\vc\include\cmath(21): error C2059: 语法错误:“;”
1>d:\program files (x86)\microsoft visual studio 10.0\vc\include\cmath(22): error C2061: 语法错误: 标识符“fabsf”
1>d:\program files (x86)\microsoft visual studio 10.0\vc\include\cmath(22): error C2059: 语法错误:“;”
1>d:\program files (x86)\microsoft visual studio 10.0\vc\include\cmath(22): error C2061: 语法错误: 标识符“floorf”
1>d:\program files (x86)\microsoft visual studio 10.0\vc\include\cmath(22): error C2059: 语法错误:“;”
1>d:\program files (x86)\microsoft visual studio 10.0\vc\include\cmath(22): error C2061: 语法错误: 标识符“fmodf”
1>d:\program files (x86)\microsoft visual studio 10.0\vc\include\cmath(22): error C2059: 语法错误:“;”
1>d:\program files (x86)\microsoft visual studio 10.0\vc\include\cmath(23): error C2061: 语法错误: 标识符“frexpf”
1>d:\program files (x86)\microsoft visual studio 10.0\vc\include\cmath(23): error C2059: 语法错误:“;”
1>d:\program files (x86)\microsoft visual studio 10.0\vc\include\cmath(23): error C2061: 语法错误: 标识符“ldexpf”
1>d:\program files (x86)\microsoft visual studio 10.0\vc\include\cmath(23): error C2059: 语法错误:“;”
1>d:\program files (x86)\microsoft visual studio 10.0\vc\include\cmath(23): error C2061: 语法错误: 标识符“logf”
1>d:\program files (x86)\microsoft visual studio 10.0\vc\include\cmath(23): error C2059: 语法错误:“;”
1>d:\program files (x86)\microsoft visual studio 10.0\vc\include\cmath(24): error C2061: 语法错误: 标识符“log10f”
1>d:\program files (x86)\microsoft visual studio 10.0\vc\include\cmath(24): error C2059: 语法错误:“;”
1>d:\program files (x86)\microsoft visual studio 10.0\vc\include\cmath(24): error C2061: 语法错误: 标识符“modff”
1>d:\program files (x86)\microsoft visual studio 10.0\vc\include\cmath(24): error C2059: 语法错误:“;”
1>d:\program files (x86)\microsoft visual studio 10.0\vc\include\cmath(24): error C2061: 语法错误: 标识符“powf”
1>d:\program files (x86)\microsoft visual studio 10.0\vc\include\cmath(24): error C2059: 语法错误:“;”
1>d:\program files (x86)\microsoft visual studio 10.0\vc\include\cmath(25): error C2061: 语法错误: 标识符“sinf”
1>d:\program files (x86)\microsoft visual studio 10.0\vc\include\cmath(25): error C2059: 语法错误:“;”
1>d:\program files (x86)\microsoft visual studio 10.0\vc\include\cmath(25): error C2061: 语法错误: 标识符“sinhf”
1>d:\program files (x86)\microsoft visual studio 10.0\vc\include\cmath(25): error C2059: 语法错误:“;”
1>d:\program files (x86)\microsoft visual studio 10.0\vc\include\cmath(25): error C2061: 语法错误: 标识符“sqrtf”
1>d:\program files (x86)\microsoft visual studio 10.0\vc\include\cmath(25): error C2059: 语法错误:“;”
1>d:\program files (x86)\microsoft visual studio 10.0\vc\include\cmath(26): error C2061: 语法错误: 标识符“tanf”
1>d:\program files (x86)\microsoft visual studio 10.0\vc\include\cmath(26): error C2059: 语法错误:“;”
1>d:\program files (x86)\microsoft visual studio 10.0\vc\include\cmath(26): error C2061: 语法错误: 标识符“tanhf”
1>d:\program files (x86)\microsoft visual studio 10.0\vc\include\cmath(26): error C2059: 语法错误:“;”
1>d:\program files (x86)\microsoft visual studio 10.0\vc\include\cmath(28): error C2061: 语法错误: 标识符“acosl”
1>d:\program files (x86)\microsoft visual studio 10.0\vc\include\cmath(28): error C2059: 语法错误:“;”
1>d:\program files (x86)\microsoft visual studio 10.0\vc\include\cmath(28): error C2061: 语法错误: 标识符“asinl”
1>d:\program files (x86)\microsoft visual studio 10.0\vc\include\cmath(28): error C2059: 语法错误:“;”
1>d:\program files (x86)\microsoft visual studio 10.0\vc\include\cmath(29): error C2061: 语法错误: 标识符“atanl”
1>d:\program files (x86)\microsoft visual studio 10.0\vc\include\cmath(29): error C2059: 语法错误:“;”
1>d:\program files (x86)\microsoft visual studio 10.0\vc\include\cmath(29): error C2061: 语法错误: 标识符“atan2l”
1>d:\program files (x86)\microsoft visual studio 10.0\vc\include\cmath(29): error C2059: 语法错误:“;”
1>d:\program files (x86)\microsoft visual studio 10.0\vc\include\cmath(29): error C2061: 语法错误: 标识符“ceill”
1>d:\program files (x86)\microsoft visual studio 10.0\vc\include\cmath(29): error C2059: 语法错误:“;”
1>d:\program files (x86)\microsoft visual studio 10.0\vc\include\cmath(30): error C2061: 语法错误: 标识符“cosl”
1>d:\program files (x86)\microsoft visual studio 10.0\vc\include\cmath(30): error C2059: 语法错误:“;”
1>d:\program files (x86)\microsoft visual studio 10.0\vc\include\cmath(30): error C2061: 语法错误: 标识符“coshl”
1>d:\program files (x86)\microsoft visual studio 10.0\vc\include\cmath(30): error C2059: 语法错误:“;”
1>d:\program files (x86)\microsoft visual studio 10.0\vc\include\cmath(30): error C2061: 语法错误: 标识符“expl”
1>d:\program files (x86)\microsoft visual studio 10.0\vc\include\cmath(30): error C2059: 语法错误:“;”
1>d:\program files (x86)\microsoft visual studio 10.0\vc\include\cmath(31): error C2061: 语法错误: 标识符“fabsl”
1>d:\program files (x86)\microsoft visual studio 10.0\vc\include\cmath(31): error C2059: 语法错误:“;”
1>d:\program files (x86)\microsoft visual studio 10.0\vc\include\cmath(31): error C2061: 语法错误: 标识符“floorl”
1>d:\program files (x86)\microsoft visual studio 10.0\vc\include\cmath(31): error C2059: 语法错误:“;”
1>d:\program files (x86)\microsoft visual studio 10.0\vc\include\cmath(31): error C2061: 语法错误: 标识符“fmodl”
1>d:\program files (x86)\microsoft visual studio 10.0\vc\include\cmath(31): error C2059: 语法错误:“;”
1>d:\program files (x86)\microsoft visual studio 10.0\vc\include\cmath(32): error C2061: 语法错误: 标识符“frexpl”
1>d:\program files (x86)\microsoft visual studio 10.0\vc\include\cmath(32): error C2059: 语法错误:“;”
1>d:\program files (x86)\microsoft visual studio 10.0\vc\include\cmath(32): error C2061: 语法错误: 标识符“ldexpl”
1>d:\program files (x86)\microsoft visual studio 10.0\vc\include\cmath(32): error C2059: 语法错误:“;”
1>d:\program files (x86)\microsoft visual studio 10.0\vc\include\cmath(32): error C2061: 语法错误: 标识符“logl”
1>d:\program files (x86)\microsoft visual studio 10.0\vc\include\cmath(32): error C2059: 语法错误:“;”
1>d:\program files (x86)\microsoft visual studio 10.0\vc\include\cmath(33): error C2061: 语法错误: 标识符“log10l”
1>d:\program files (x86)\microsoft visual studio 10.0\vc\include\cmath(33): error C2059: 语法错误:“;”
1>d:\program files (x86)\microsoft visual studio 10.0\vc\include\cmath(33): error C2061: 语法错误: 标识符“modfl”
1>d:\program files (x86)\microsoft visual studio 10.0\vc\include\cmath(33): error C2059: 语法错误:“;”
1>d:\program files (x86)\microsoft visual studio 10.0\vc\include\cmath(33): error C2061: 语法错误: 标识符“powl”
1>d:\program files (x86)\microsoft visual studio 10.0\vc\include\cmath(33): error C2059: 语法错误:“;”
1>d:\program files (x86)\microsoft visual studio 10.0\vc\include\cmath(34): error C2061: 语法错误: 标识符“sinl”
1>d:\program files (x86)\microsoft visual studio 10.0\vc\include\cmath(34): error C2059: 语法错误:“;”
1>d:\program files (x86)\microsoft visual studio 10.0\vc\include\cmath(34): error C2061: 语法错误: 标识符“sinhl”
1>d:\program files (x86)\microsoft visual studio 10.0\vc\include\cmath(34): error C2059: 语法错误:“;”
1>d:\program files (x86)\microsoft visual studio 10.0\vc\include\cmath(34): error C2061: 语法错误: 标识符“sqrtl”
1>d:\program files (x86)\microsoft visual studio 10.0\vc\include\cmath(34): error C2059: 语法错误:“;”
1>d:\program files (x86)\microsoft visual studio 10.0\vc\include\cmath(35): error C2061: 语法错误: 标识符“tanl”
1>d:\program files (x86)\microsoft visual studio 10.0\vc\include\cmath(35): error C2059: 语法错误:“;”
1>d:\program files (x86)\microsoft visual studio 10.0\vc\include\cmath(35): error C2061: 语法错误: 标识符“tanhl”
1>d:\program files (x86)\microsoft visual studio 10.0\vc\include\cmath(35): error C2059: 语法错误:“;”
1>d:\program files (x86)\microsoft visual studio 10.0\vc\include\cmath(37): error C2061: 语法错误: 标识符“abs”
1>d:\program files (x86)\microsoft visual studio 10.0\vc\include\cmath(37): error C2059: 语法错误:“;”
1>d:\program files (x86)\microsoft visual studio 10.0\vc\include\cmath(39): error C2061: 语法错误: 标识符“acos”
1>d:\program files (x86)\microsoft visual studio 10.0\vc\include\cmath(39): error C2059: 语法错误:“;”
1>d:\program files (x86)\microsoft visual studio 10.0\vc\include\cmath(39): error C2061: 语法错误: 标识符“asin”
1>d:\program files (x86)\microsoft visual studio 10.0\vc\include\cmath(39): error C2059: 语法错误:“;”
1>d:\program files (x86)\microsoft visual studio 10.0\vc\include\cmath(40): error C2061: 语法错误: 标识符“atan”
1>d:\program files (x86)\microsoft visual studio 10.0\vc\include\cmath(40): error C2059: 语法错误:“;”
1>d:\program files (x86)\microsoft visual studio 10.0\vc\include\cmath(40): error C2061: 语法错误: 标识符“atan2”
1>d:\program files (x86)\microsoft visual studio 10.0\vc\include\cmath(40): error C2059: 语法错误:“;”
1>d:\program files (x86)\microsoft visual studio 10.0\vc\include\cmath(40): error C2061: 语法错误: 标识符“ceil”
1>d:\program files (x86)\microsoft visual studio 10.0\vc\include\cmath(40): error C2059: 语法错误:“;”
1>d:\program files (x86)\microsoft visual studio 10.0\vc\include\cmath(41): error C2061: 语法错误: 标识符“cos”
1>d:\program files (x86)\microsoft visual studio 10.0\vc\include\cmath(41): fatal error C1003: 错误计数超过 100;正在停止编译
1>
1>生成失败。
1>
1>已用时间 00:00:00.12
生成: 成功 0 个,失败 1 个,最新 0 个,跳过 0 个
#include
#include
#include
#include
#define WORD_len 50
#define MEANINIG_len 80
#define number 4000
typedef struct WORD
{int xu;
char spelling[WORD_len];
char meanning[MEANINIG_len];
int displaytimes_right;
int displaytimes_wrong;
}Word;//单词结构体
int Readfile(char *fname, Word wo[]);//读取文件
int zhengquefrequency(char *fname,int num);//求正确率
int chuxianfrequency(char *fname,int num);//出现频率
int duqubianhao(char *fname);//读取单词编号
void chucunweizhi(char *fname,int xu);//存储学到的单词的编号
void xuanzeti(char *fname,int i);//创建选择题
int main()
{int i=0,choose;
char yonghuming[20];
//创建单词的编号
printf("请输入用户名(可再修改)");
scanf("%s",yonghuming);
i=duqubianhao(yonghuming);
printf("请选择");
for(;i<=number;i++)
{printf("1.下一题\n");
printf("2.停止答题\n");
scanf("%d",&choose);
switch(choose)
{case 1:break;
case 2:xuanzeti(yonghuming,i);
}
}chucunweizhi(yonghuming,i);
return 0;
}
void xuanzeti(char *fname,int i)
{int a,b,c,z,t,character,j;
char temp[MEANINIG_len];
FILE *fp;
Word choice[4];//三个错误选项和一个正确选项
Word words[number];
char userschoice[MEANINIG_len];
fp=fopen(fname,"r");//读取所有单词
if(fp==0)
{printf("source error\n");
exit(0);
}
fscanf(fp,"%s%s",words[z].spelling,words[z].meanning);
while(!feof(fp))
{z++;
fscanf(fp,"%s%s",words[z].spelling,words[z].meanning);
}
//产生随机数、选出三个错误选项
int j=0,random,a,b,c;
srand((unsigned int) time(0));
for(j=0,z=0;j<1000&&z<3;j++)
{random=rand()%10;
if(random<=number&&random!=i)
{strcpy(choice[z].meanning,words[random].meanning);
z++;
}
}
strcpy(choice[3].meanning,words[number].meanning);
//打乱选项
for(a=0;a<4-1;a++)
{c=1;
for(b=a+1;b<4;b++)
if(strcmp(choice[c].meanning,choice[b].meanning)>0)
c=b;
if(c!=a)
{strcpy(temp,choice[a].meanning);
strcpy(choice[a].meanning,choice[c].meanning);
strcpy(choice[c].meanning,temp);
}
}
//选择界面
printf("请选择%s的正确释义\n",words[i].spelling);
printf("1.%s\n",choice[0].meanning);
printf("2.%s\n",choice[1].meanning);
printf("3.%s\n",choice[2].meanning);
printf("4.%s\n",choice[3].meanning);
scanf("%d",&character);
strcpy(userschoice,choice[character].meanning);
t=strcmp(userschoice,words[i].meanning);
if(!t)
{printf("回答正确!");
words[i].displaytimes_right++;
}
else
{printf("回答错误,正确答案为%s",words[i].meanning);
words[i].displaytimes_wrong++;
}
}
//该单词的出现频率
int chuxianfrequency(char *fname,int num)
{int i=0;//控制数组
int sumt,sumf,sum=0,frequency;
Word wo[number];
FILE *fp;
fp=fopen(fname,"r+");
if(fp==0)
{printf("file error");
exit(1);}
fscanf(fp,"%d%d",&wo[i].displaytimes_right,&wo[i].displaytimes_wrong);
while(!feof(fp))
{i++;
fscanf(fp,"%d%d",&wo[i].displaytimes_right,&wo[i].displaytimes_wrong);
}
fclose(fp);
for(i=0;i<=number;i++)
{sum=wo[i].displaytimes_right+wo[i].displaytimes_wrong;
}
frequency=(wo[number].displaytimes_right+wo[number].displaytimes_wrong)/sum;
}
//该单词的正确率
int zhengquefrequency(char *fname,int num)
{int i=0;
int sumt,sumf,sum=0,frequency;
Word wo[number];
FILE *fp;
fp=fopen(fname,"r+");
if(fp==0)
{printf("file error");
exit(1);}
fscanf(fp,"%d%d",&wo[i].displaytimes_right,&wo[i].displaytimes_wrong);
while(!feof(fp))
{i++;
fscanf(fp,"%d%d",&wo[i].displaytimes_right,&wo[i].displaytimes_wrong);
}
fclose(fp);
frequency=wo[number].displaytimes_right/(wo[number].displaytimes_right+wo[number].displaytimes_wrong);
}
//
int duqubianhao(char *fname)//输入文档名和用户名有关,读取用户上次学到的那个单词的编号
FILE *fp;
int bianhao;
fp=fopen(fname,"r+");
if(fp==0)
{printf("用户开始学习第一个单词");
exit(1);
fopen(fname,"w+");
bianhao=0;
}
else
{fscanf(fp,"%d",&bianhao);
}
return bianhao;
}
void chucunweizhi(char *fname,int xu)//输入文档名和用户名有关
{FILE *fp;
fp=fopen(fname,"w+");
if(fp==0)
{printf("file error");
exit(1);}
fprintf(fp,"%d",xu);
fclose(fp);
}
引用chatGPT作答,在代码中存在一些语法错误和逻辑错误,需要进行如下修正:
1.在头文件中包含是错误的,应该改为#include<string.h>,以便使用strcpy等字符串操作函数。
2.在zhengquefrequency函数中,缺少return语句,需要添加。
3.在chuxianfrequency函数中,frequency计算公式错误,应该是(wo[num].displaytimes_right+wo[num].displaytimes_wrong)*100/sum。
4.在chuxianfrequency函数中,sum应该在for循环中进行累加,否则只计算最后一个单词的总出现次数。
5.在main函数中,duqubianhao函数未定义,需要添加该函数的定义。
6.在main函数中,chucunweizhi函数未定义,需要添加该函数的定义。
7.在xuanzeti函数中,字符数组j重复定义,应该将其中一个j改为其他变量名。
8.在xuanzeti函数中,变量z未初始化,应该在读取文件之前将z初始化为-1。
9.在xuanzeti函数中,循环次数限制应该是z<3,而不是j<3。
10.在xuanzeti函数中,应该先读取单词编号,再读取单词拼写和释义。
11.在xuanzeti函数中,需要在读取单词拼写和释义之后,将z加1。
12.在xuanzeti函数中,计算选择的答案是否正确的部分需要加入if语句,以确保用户输入的选择在1到4之间。
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <time.h>
#define WORD_LEN 50
#define MEANING_LEN 80
#define NUMBER 4000
typedef struct WORD {
int xu;
char spelling[WORD_LEN];
char meaning[MEANING_LEN];
int displaytimes_right;
int displaytimes_wrong;
} Word; //单词结构体
int read_file(char *fname, Word wo[]); //读取文件
int zhengque_frequency(char *fname, int num); //求正确率
int chuxian_frequency(char *fname, int num); //出现频率
int read_bianhao(char *fname); //读取单词编号
void save_weizhi(char *fname, int xu); //存储学到的单词的编号
void create_xuanze(char *fname, int i); //创建选择题
int main() {
int i = 0, choose;
char yonghuming[20];
//创建单词的编号
printf("请输入用户名(可再修改)");
scanf("%s", yonghuming);
i = read_bianhao(yonghuming);
printf("请选择");
for (; i <= NUMBER; i++) {
printf("1.下一题\n");
printf("2.停止答题\n");
scanf("%d", &choose);
switch (choose) {
case 1:
break;
case 2:
create_xuanze(yonghuming, i);
break;
}
}
save_weizhi(yonghuming, i);
return 0;
}
void create_xuanze(char *fname, int i) {
int a, b, c, z, t, character, j;
char temp[MEANING_LEN];
FILE *fp;
Word choice[4]; //三个错误选项和一个正确选项
Word words[NUMBER];
char userschoice[MEANING_LEN];
fp = fopen(fname, "r"); //读取所有单词
if (fp == NULL) {
printf("source error\n");
exit(0);
}
fscanf(fp, "%s%s", words[z].spelling, words[z].meaning);
while (!feof(fp)) {
z++;
fscanf(fp, "%s%s", words[z].spelling, words[z].meaning);
}
//产生随机数、选出三个错误选项
int random;
srand((unsigned int) time(NULL));
for (j = 0, z = 0; j < 1000 && z < 3; j++) {
random = rand() % 10;
if (random <= NUMBER && random != i) {
strcpy(choice[z].meaning, words[random].meaning);
z++;
}
}
strcpy(choice[3].meaning, words[i].meaning); //将正确答案放入选项数组
//打乱选项
for (a = 0; a < 4 - 1; a++) {
c = 1;
while (c) {
c = 0;
for (b = 0; b < 4 - 1 - a; b++) {
if (rand() % 2) {
strcpy(temp, choice[b].meaning);
strcpy(choice[b].meaning, choice[b + 1].meaning);
strcpy(choice[b + 1].meaning, temp);
c = 1;
}
}
}
}
//显示题目和选项
printf("%s\n", words[i].spelling);
for (a = 0; a < 4; a++) {
printf("%d.%s ", a + 1, choice[a].meaning);
}
printf("\n");
//获取用户选择
printf("请输入您的选择:");
scanf("%s", userschoice);
//判断用户选择是否正确
if (strcmp(userschoice, "1") == 0 && strcmp(choice[0].meaning, words[i].meaning) == 0) {
printf("恭喜你,答对了!\n");
} else if (strcmp(userschoice, "2") == 0 && strcmp(choice[1].meaning, words[i].meaning) == 0) {
printf("恭喜你,答对了!\n");
} else if (strcmp(userschoice, "3") == 0 && strcmp(choice[2].meaning, words[i].meaning) == 0) {
printf("恭喜你,答对了!\n");
} else if (strcmp(userschoice, "4") == 0 && strcmp(choice[3].meaning, words[i].meaning) == 0) {
printf("恭喜你,答对了!\n");
} else {
printf("很遗憾,答错了,正确答案是:%s\n", words[i].meaning);
}
fclose(fp);
}
void chucunweizhi(char *fname,int xu)
{FILE *fp;
fp=fopen(fname,"w");
fprintf(fp,"%d",xu);
fclose(fp);
}
//读取上一次背到的单词编号
int duqubianhao(char *fname)
{int i=0;
FILE *fp;
fp=fopen(fname,"r");
if(fp==0)
{printf("file error");
exit(1);}
fscanf(fp,"%d",&i);
fclose(fp);
return i;
}
//读取文件
int Readfile(char *fname, Word wo[])
{int i=0;
FILE *fp;
fp=fopen(fname,"r+");
if(fp==0)
{printf("file error");
exit(1);}
fscanf(fp,"%d%d%s%s",&wo[i].displaytimes_right,&wo[i].displaytimes_wrong,wo[i].spelling,wo[i].meanning);
while(!feof(fp))
{i++;
fscanf(fp,"%d%d%s%s",&wo[i].displaytimes_right,&wo[i].displaytimes_wrong,wo[i].spelling,wo[i].meanning);
}
fclose(fp);
return i;
}
//统计出现频率和正确率
void frequency(char fname)
{int i=0,sum=0,sumt=0,sumf=0;
double rate;
Word wo[number];
i=Readfile(fname,wo);
for(i=0;i<number;i++)
{sum+=wo[i].displaytimes_right+wo[i].displaytimes_wrong;
sumt+=wo[i].displaytimes_right;
sumf+=wo[i].displaytimes_wrong;
}
rate=(double)sumt/sum;
printf("所有单词的正确率为%f%%,",rate100);
printf("出现频率最高的单词是%s,出现次数为%d\n",wo[number].spelling,wo[number].displaytimes_right+wo[number].displaytimes_wrong);
}
//主程序
int main()
{int i=0,choose;
char yonghuming[20];
printf("请输入用户名(可再修改)");
scanf("%s",yonghuming);
i=duqubianhao(yonghuming);
printf("请选择\n");
for(;i<=number;i++)
{printf("1.下一题\n");
printf("2.停止答题\n");
scanf("%d",&choose);
switch(choose)
{case 1:xuanzeti(yonghuming,i);break;
case 2:xuanzeti(yonghuming,i);break;
}
}
chucunweizhi(yonghuming,i);
frequency(yonghuming);
return 0;
}
错误信息很明确,你前面定义了j,后面又定义j,重复了
下面一堆都是类似问题
int duqubianhao(char *fname)
这里少了 { 括号
你的代码写得太乱,加上缩进吧
这个是编译错误,你检查一下头文件是否正确引用,以及是否正确地使用了cmath库中的函数。在使用cmath库的函数时,需要在代码中包含cmath头文件。
可能的错误信息:
在 xuanzeti() 函数中,你定义了两个 j 变量,需要删除其中一个。
在 chuxianfrequency() 函数中,你需要将所有的单词读取出来,并计算出它们的总出现次数,而不仅仅是最后一个单词的出现次数。可以在读取文件时进行累加,并在循环结束后计算出总次数。
在 zhengquefrequency() 函数中,你需要将所有的单词读取出来,并计算出它们的总出现次数和总正确次数,而不仅仅是最后一个单词的出现次数和正确次数。同样可以在读取文件时进行累加,并在循环结束后计算出总次数和总正确次数。
朋友您好,以下是我把您的问题和相关观点都看了一遍分析出来的,望采纳谢谢啦
谢谢,麻了,笑哭,让我想起了当年大一,去图书馆借本书朋友可以改掉不少这些细节的地方,代码下面错了很多语法,不是光这些报错解决就能运行成功的
这个错误提示可能与头文件中的某些内容有关,看起来像是缺少某些头文件或者命名空间。建议尝试以下几种方法解决问题:
1.确保在代码中包含了正确的头文件,比如#include 。还要检查代码是否在正确的命名空间中,如using namespace std;。
2.如果确定代码中的头文件和命名空间都正确,那么可能是编译器的问题。尝试更新编译器版本或者切换到其他编译器,比如MinGW。
3.如果以上两种方法都没有解决问题,可以考虑使用其他方式实现相同的功能,比如使用第三方库或者自己编写相应的代码。