一个C语言题 急求
外语考试都是选择题(ABCD)共有十个题(1)变成把一个学生的考试答案写入一个key.txt文件中(2)正确答案是ABDBCDACBD把正确答案写入right.txt文件...
外语考试都是选择题 (A B C D) 共有十个题
(1)变成把一个学生的考试答案写入一个key.txt文件中
(2)正确答案是 A B D B C D A C B D 把正确答案写入right.txt 文件中
(3)编程从right.txt中读出正确答案存储在一维字符数组中 从key.txt文件中读取该学生的实际答案存在另一个一维字符数组中 最后统计该名考生答对多少题 展开
(1)变成把一个学生的考试答案写入一个key.txt文件中
(2)正确答案是 A B D B C D A C B D 把正确答案写入right.txt 文件中
(3)编程从right.txt中读出正确答案存储在一维字符数组中 从key.txt文件中读取该学生的实际答案存在另一个一维字符数组中 最后统计该名考生答对多少题 展开
展开全部
#include <stdio.h>
void writeStuAns();
void writeAns(char *ans);
void readStuAns(char *stuAns);
int main() {
int i;
int count = 0;
char stuAns[10];
char ans[10] = {'A','B','D','B','C','D','A','C','B','D'};
writeStuAns();
writeAns(ans);
readStuAns(stuAns);
for (i = 0; i < 10; i++) {
if (ans[i] == stuAns[i])
count++;
}
printf("Total right nums:%d\n", count);
return 0;
}
void writeStuAns() {
char ans;
int i;
FILE *f;
if ((f = fopen("key.txt", "wt")) == NULL) {
printf("Open File Error.\n");
return;
}
for (i = 0; i < 10; i++) {
scanf("%d",&ans); //这里建设学生的答案都是从键盘输入的
fprintf(f, "%d\n", ans);
}
fclose(f);
}
void writeAns(char *ans) {
int i;
FILE *f;
if ((f = fopen("right.txt", "wt")) == NULL) {
printf("Open File Error.\n");
return;
}
for (i = 0; i < 10; i++) {
fprintf(f, "%d\n", ans[i]);
}
fclose(f);
}
void readStuAns(char *ans) {
int i;
FILE *f;
if ((f = fopen("right.txt", "rt")) == NULL) {
printf("Open File Error.\n");
return;
}
for (i = 0; i < 10; i++)
fscanf(f, "%d", &ans[i]);
fclose(f);
}
不过说实在的,我真不知道你为什么要搞的这么复杂。从right.txt文件中读出我没有写,因为你开始已经知道答案给写到right.txt里的,再给读出来岂不是多此一举?如果你实在想要的话可以参考readStuAns函数,实现非常简单。
void writeStuAns();
void writeAns(char *ans);
void readStuAns(char *stuAns);
int main() {
int i;
int count = 0;
char stuAns[10];
char ans[10] = {'A','B','D','B','C','D','A','C','B','D'};
writeStuAns();
writeAns(ans);
readStuAns(stuAns);
for (i = 0; i < 10; i++) {
if (ans[i] == stuAns[i])
count++;
}
printf("Total right nums:%d\n", count);
return 0;
}
void writeStuAns() {
char ans;
int i;
FILE *f;
if ((f = fopen("key.txt", "wt")) == NULL) {
printf("Open File Error.\n");
return;
}
for (i = 0; i < 10; i++) {
scanf("%d",&ans); //这里建设学生的答案都是从键盘输入的
fprintf(f, "%d\n", ans);
}
fclose(f);
}
void writeAns(char *ans) {
int i;
FILE *f;
if ((f = fopen("right.txt", "wt")) == NULL) {
printf("Open File Error.\n");
return;
}
for (i = 0; i < 10; i++) {
fprintf(f, "%d\n", ans[i]);
}
fclose(f);
}
void readStuAns(char *ans) {
int i;
FILE *f;
if ((f = fopen("right.txt", "rt")) == NULL) {
printf("Open File Error.\n");
return;
}
for (i = 0; i < 10; i++)
fscanf(f, "%d", &ans[i]);
fclose(f);
}
不过说实在的,我真不知道你为什么要搞的这么复杂。从right.txt文件中读出我没有写,因为你开始已经知道答案给写到right.txt里的,再给读出来岂不是多此一举?如果你实在想要的话可以参考readStuAns函数,实现非常简单。
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询