
#include<stdio.h>
int main()
{
int N,M,G,i,j,k,u,amunt,t=0,temp,a[1000]={0},b[10],c[10],d[1000];
char n[20];
while(~scanf("%d %d %d",&N,&M,&G))//輸入學生數,題數,分數線;
{
if(N==0)
break;//學生數為零跳出;
else
{
for(i=0;i<M;i++)
{
scanf("%d",&b[i]);//輸入各題分值;
}
for(i=0;i<N;i++)
{
gets(n[i]);//輸入學號;
scanf("%d",&amunt);//輸入該學生做對的題數;
for(j=0;j<amunt;j++)
{
scanf("%d",&c[j]);//輸入該學生做對的各題題號;
for(k=1;k<=M;k++)
{
if(c[j]==k)
c[j]=b[k-1];//將該題的分值賦給該題;
}
}
for(j=0;j<t;j++)
{
a[i]=a[i]+c[j];//求出該學生總分;
}
if(a[i]>=G)
{
t++;//如果該學生及格則及格人數加一;
d[t-1]=i;//將該學生的編號記下;
}
}
for(u=0;u<t;u++)
{
for(j=0;j<t-u;j++)
if(d[j]<d[j+1])
{
temp=d[j];
d[j]=d[j+1];
d[j+1]=temp;//對及格學生的分數排序;
}
}
printf("%d",t);//輸出及格學生總數;
for(j=0;j<t;j++)
printf("%s %d\n",n[d[j]],a[d[j]]);//按降序輸出及格學生學號及總分;
}
}
}
uj5u.com熱心網友回復:
這種題目是不是一定要用結構體才能做?轉載請註明出處,本文鏈接:https://www.uj5u.com/houduan/237360.html
標籤:C語言
上一篇:C語言檔案操作代碼
