如果用窗体设计20道(或者更多)选择题,或者直接用代码表示;有的人只做对几个,有的人只做错几个,各种情况都有,那么如何来筛选判断最后的成绩得分?如果用if选择结构来判断筛选,那么就要考虑到所有的情况,至少要反复筛选几十次,所以我就想知道有没有稍微简单一点点的算法……
用for循环,一个数组装每到题目的分值,另一个数组装每到题目是否正确或者转每道题的得分比例(因为不是所有题目都是只有满分和0分),如第一题20分,做对了权值为1,做错了权值为0得分分别为20×1和20×0
以下是C语言实现(原谅我没学过C#)
#include "stdio.h"
int CalcResult(int *grade,int *istrue,int n)//grade为分数数组,根据istrue[i]是0还是1判断第i+1到题是否正确,n为总题目数
{
int i,result=0;
for(i=0;i<n;i++)
{
printf("你第%2d题总分为%3d 得分为:%3d\n",i+1,grade[i],istrue[i]*grade[i]);
result+=grade[i]*istrue[i];
}
return result;
}
int main()
{
int grade[20],istrue[20],i;
for(i=0;i<20;i++)
{
grade[i]=(i+1);//给每道题赋分
istrue[i]=i%2;//模拟批改a
}
printf("result=%d",CalcResult(grade,istrue,20));
return 0;
}