1.18 假设有A B C D
E五个高等院校进行田径对抗赛 各院校的单项成绩均已存入计算机 并构成一张表
表中每一行的形式为 项目名称 性别 校名 成绩 得分 编写算法 处理上述表格
以统计各院校的男、女总分和团体总分 并输出
解:
typedef enum{A B C D
E} SchoolName;
typedef enum{Female Male} SexType; typedef struct{
char event[3]; //项目 SexType sex;
SchoolName school; int score; } Component; typedef struct{
int MaleSum; //男团总分 int FemaleSum; //女团总分 int TotalSum; //团体总分 } Sum;
Sum SumScore(SchoolName sn Component a[] int n) {
Sum temp;
temp.MaleSum=0; temp.FemaleSum=0;
temp.TotalSum=0; int i;
for(i=0;i if(a[i].school==sn){ if(a[i].sex==Male) temp.MaleSum+=a[i].score; if(a[i].sex==Female) temp.FemaleSum+=a[i].score; } } temp.TotalSum=temp.MaleSum+temp.FemaleSum; return temp; } 1.19 试编写算法 计算的值并存入数组a[0..arrsize-1]的第i-1个分量中(i=1 2 ... n) 假设计算机中允许的整数最大值为maxint 则当n>arrsize或对某个 使时 应按出错处理 注意选择你认为较好的出错处理方法 解: #include int main() { int i k; int a[ArrSize]; cout<<\ cin>>k; if(k>ArrSize-1) exit(0); for(i=0;i<=k;i++){ if(i==0) a[i]=1; else{ if(2*i*a[i-1]>MAXINT) exit(0); else a[i]=2*i*a[i-1]; } } for(i=0;i<=k;i++){
相关推荐: