中国石油大学 C语言学分绩点编程

  • 格式:txt
  • 大小:2.96 KB
  • 文档页数:2

#include
double kechengxuefen(int m,double e[]);
void jidianxuefenhe(int a[][100],int n,int m,double c[],double e[]);
void GPA(double g,double c[],double d[],int n);
void paixu(double b[],int n);
void shuchu(double b[],double d[],int a[][100],int n,int m,char x[][100],char z[][50]);
main()
{
int a[100][100],n,m,i,j;
double b[100],c[100],d[100],e[100],g;
char z[100][50],x[100][50];
printf("请输入学生人数 科目数\n");
scanf("%d%d",&n,&m);
for(i=0;i<100;i++)
{ b[i]=0;
c[i]=0;
d[i]=0;
}
printf("请输入各科目的名称\n");
for(i=0;i{
scanf("%s",z[i]);
}
printf("请输入各科目的学分\n");
for(i=0;i{
scanf("%lf",&e[i]);
}
printf("请输入学生名称 学号 各科成绩(用空格分开)\n学生名字 学号 成绩\n");
for(i=0;i{
scanf("%s",x[i]);
for(j=0;j{
scanf("%d",&a[i][j]);
}
}
jidianxuefenhe(a,n,m,c,e);
g=kechengxuefen(m,e);
GPA(g,c,d,n);
for(i=0;i{
b[i]=d[i];
}
paixu(b,n);
shuchu(b,d,a,n,m,x,z);
}

void shuchu(double b[],double d[],int a[][100],int n,int m,char x[][50],char z[][50])
{
int i,j,k=0,e[100];
for(i=0;i{
for(j=0;j{
if(b[i]==d[j])
{
e[k]=j;
k++;
}
}
}
k=0;
printf("学生名字 学生编号 ");
for(i=0;i{
if(i==m/2)
{
printf("成 绩");
i++;
}
printf("------");
}
printf(" 名 次 学分绩\n");
printf(" ");
for(i=0;i{
printf("%6s",z[i]);
}
printf(" \n");
for(i=0;i{
printf("%8s",x[e[k]]);
printf("%11d ",a[e[k]][0]);
for(j=1;j{
printf("%6d",a[e[k]][j]);
}
k++;
printf(" 第%2d名 %6.3lf\n",i+1,b[i]);
}
}

void paixu(double b[],int n)
{
int i,j;
double jiazi;
for(i=0;i{
for(j=0;j{
if(b[j]{
jiazi=b[j];
b[j]=b[j+1];
b[j+1]=jiazi;
}
}
n--;
}
}

void GPA(double g,double c[],double d[],int n)
{
int i;
for(i=0;i{
*(d+i)=(c[i]/g);
}
}

double kechengxuefen(int m,double e[])
{
int j;
double a=0;
for(j=0;j{
a=a+e[j];
}
return a;
}

void jidianxuefenhe(int a[][100],int n,int m,double c[],double e[])
{
int i,j;
for(i=0;i{
for(j=1;j{
if(a[i][j]>=90&&a[i][j]<=100) {*(c+i)+=(4.0*e[j-1]);}
else if(a[i][j]>=85&&a[i][j]<90) {*(c+i)+=(3.7*e[j-1]);}
else if(a[i][j]>=82&&a[i][j]<85) {*(c+i)+=(3.3*e[j-1]);}
else if(a[i][j]>=78&&a[i][j]<82) {*(c+i)+=(3*e[j-1]);}
else if(a[i][j]>=75&&a[i][j]<78) {*(c+i)+=(2.7*e[j-1]);}
else if(a[i][j]>=72&&a[i][j]<75) {*(c+i)+=(2.3*e[j-1]);}
else if(a[i][j]>=68&&a[i][j]<72) {*(c+i)+=(2*e[j-1]);}
else if(a[i][j]>=66&&a[i][j]<68) {*(c+i)+=(1.7*e[j-1]);}
else if(a[i][j]>=62&&a[i][j]<66) {*(c+i)+=(1.5*

e[j-1]);}
else if(a[i][j]>=60&&a[i][j]<62) {*(c+i)+=(1*e[j-1]);}
else {*(c+i)+=0;}
}
}
}

下载文档原格式

  / 2
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。