#include<stdio.h>
struct person{
char name[30];/*姓名*/
char number[30];/*學號*/
char answer[11];/*答案*/
float result;/*成績*/
}con[17];
void main(void)
{
char right[11]="ABCAAACDDA";
FILE *hw6;
FILE *ans6;
hw6=fopen("hw6.txt","r");
ans6=fopen("ans6.txt","w");
int nu=0;
int j,m;
do
{
fscanf(hw6,"%s %s %s %f",con[nu].name,con[nu].number,con[nu].answer,con[nu].result=0);
for(j=0;j<11;j++)
{
if(con[nu].answer[j]==right[j])
{
con[nu].result+=10;
}
else
{
con[nu].result-=2.5;
}
}
if(con[nu].result<0)
con[nu].result=0;
nu++;
}
while(con[nu].number[0]!='E');
for(m=0;m<17;m++)
fprintf(ans6,"%s %s %s %f",con[m].name,con[m].number,con[m].answer,con[m].result);
fclose(hw6);
fclose(ans6);
}
============================================
hw6.txt內容:
number name answer result
u471201 john ABCCBACDDA
u471202 Mary BBCAABDDDA
u471203 Jenny BBCCAACDBA
u471204 Joe ABACAACDDC
u471205 Sally CBBAAACDCD
u471206 Jeff ABCAAADDDA
u471207 April ABDACADDDA
u471208 May ABDBABADCC
u471209 Jordan ABDABACCDD
u471210 Ronman ABDABABBCA
u471211 Billy BBCAACBBDA
u471212 Amy CCBABCBCBA
u471213 Kobe CBCACCCDAA
u471214 Iverson ABDACCCDDD
u471215 David ABAAACBCDD
u471216 Matt BAABAABCDA
u471217 Lucy CABCAAACDA
E
在ans6.txt輸出考生姓名,學號,答案與計算出該考生成績.一題十分寫錯扣2.5分.讀到E結束.
用vc跑有一些奇怪的錯誤,請大家幫我看看有什麼錯誤.
可是都會跳出這樣的錯誤:
Debug Assertion Failed!
program:c:\debug\測試.exe
File:fscanf.c
Line:54
Expression:stream!=null
for information on how you program can cause an assertion
failure,see the Visual c++doumentation on asserts.
(Press Retry to debug the application)
中止A 重試R 略過I
書籤