展开全部
一个大体的思路和流程:
typedef struct{
char[] word; //某个单词
int countA;//在文章A中的出现次数
int countB;//在文章B中的出现次数
}WordCount;//表示某一个单词在两篇文章中的出现次数
int wordsCountA;//文章A中的单词总数量
int wordsCountB;//文章B中的单词总数量
WordCount[] wcArray;//所有出现过的单词的出现次数数组
//用来判断两个单词是否相等的函数
int isEqual(char[] a, char[] b);
//读取文件流中下一个单词的函数(如果某个char的值不在a-z和A-Z范围内,可以认为这是一个单词结束的标志);如果已经没有下一个单词(文件结束),返回一个值为0的指针
char[] nextWord(FILE* f);
//检查wcArray中是否存在要添加的单词(isEqual函数在这里被用到),如果存在,根据flag的值使对应单词的countA或countB加1(flag表示是文章A还是文章B),如果不存在,创建一个新WordCount,并添加到wcArray中。
void addWord(char[] word, int flag);
int main(){
scanf函数读取用户输入的文章A和B的路径
FILE* f = fopen(文章A路径,只读);
while(能读到下一个单词){
addWord(读到的单词,flagA);
++wordsCountA;
}
fclose(f);
FILE* f = fopen(文章B路径,只读);
while(能读到下一个单词){
addWord(读到的单词,flagB);
++wordsCountB;
}
fclose(f);
FILE* f = fopen(输出文件路径,写入);
使用wordsCountA、wordsCountB、wcArray计算题目要求的数据,打印到屏幕,同时用fprintf函数将结果写入到输出文件。
fclose(f);
return 0;
}
typedef struct{
char[] word; //某个单词
int countA;//在文章A中的出现次数
int countB;//在文章B中的出现次数
}WordCount;//表示某一个单词在两篇文章中的出现次数
int wordsCountA;//文章A中的单词总数量
int wordsCountB;//文章B中的单词总数量
WordCount[] wcArray;//所有出现过的单词的出现次数数组
//用来判断两个单词是否相等的函数
int isEqual(char[] a, char[] b);
//读取文件流中下一个单词的函数(如果某个char的值不在a-z和A-Z范围内,可以认为这是一个单词结束的标志);如果已经没有下一个单词(文件结束),返回一个值为0的指针
char[] nextWord(FILE* f);
//检查wcArray中是否存在要添加的单词(isEqual函数在这里被用到),如果存在,根据flag的值使对应单词的countA或countB加1(flag表示是文章A还是文章B),如果不存在,创建一个新WordCount,并添加到wcArray中。
void addWord(char[] word, int flag);
int main(){
scanf函数读取用户输入的文章A和B的路径
FILE* f = fopen(文章A路径,只读);
while(能读到下一个单词){
addWord(读到的单词,flagA);
++wordsCountA;
}
fclose(f);
FILE* f = fopen(文章B路径,只读);
while(能读到下一个单词){
addWord(读到的单词,flagB);
++wordsCountB;
}
fclose(f);
FILE* f = fopen(输出文件路径,写入);
使用wordsCountA、wordsCountB、wcArray计算题目要求的数据,打印到屏幕,同时用fprintf函数将结果写入到输出文件。
fclose(f);
return 0;
}
追问
可以帮我写一下代码吗 谢谢了(ಥ_ಥ)
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询