当前位置: 代码迷 >> C语言 >> [原创]我的C作业
  详细解决方案

[原创]我的C作业

热度:144   发布时间:2006-11-20 20:24:47.0
[原创]我的C作业

学生成绩汇总.cpp
-------------------------------------------------------------------
#include <stdio.h>
struct grade
{
char name[20]; /*姓名*/
int termLyexam; /*平时成绩*/
int midTerm; /*期中成绩*/
int endTerm; /*期末成绩*/
float finalGrade; /*最终成绩*/
};

void main()
{
struct grade str[30];
int i=0,j,count=0;
char any='y';
struct grade max;
do
{
count++; /*累加器,计算输入的学生个数*/
printf("请输入第%d个学生的信息\n",i+1);
printf("学生姓名:");
scanf("%s",str[i].name);
printf("平时成绩:");
scanf("%d",&str[i].termLyexam);
printf("期中成绩:");
scanf("%d",&str[i].midTerm);
printf("期末成绩:");
scanf("%d",&str[i].endTerm);
printf("继续输入吗?<y/n>:");
scanf(" %c",&any);
i++;
}while(any=='y'); /*提示用户是否继续输入*/
printf("\n以下是成绩清单:\n");
printf("姓 名\t平时成绩\t期中成绩\t期末成绩\t最终成绩\n");
printf("------\t--------\t--------\t--------\t--------\n");
for(j=0;j<count;j++) /*计算每个学生的最终成绩,count是学员人数*/
{
str[j].finalGrade=str[j].termLyexam*0.1+str[j].midTerm*0.2+str[j].endTerm*0.7; /*计算最终成绩*/
printf("%s\t%d\t\t%d\t\t%d\t\t%.2f\n",str[j].name,str[j].termLyexam,str[j].midTerm,str[j].endTerm,str[j].finalGrade);
}
max.finalGrade=str[0].finalGrade;
for(j=0;j<count;j++) /*求最好的最终成绩*/
{
if(max.finalGrade<str[j].finalGrade)
{
max=str[j];
}
}
printf("\n成绩最好的是%s,最终成绩为:%.2f\n",max.name,max.finalGrade);


}

搜索更多相关的解决方案: 作业  int  grade  struct  count  

----------------解决方案--------------------------------------------------------
商品价格统计.cpp


---------------------------------------------
#include <stdio.h>
struct shop /*自定义数据类型*/
{
char name[20]; /*名称*/
float danjia; /*价格*/
int shuliang; /*数量*/
float sum; /*总价*/
};

void main()
{
struct shop jia[4]; /*定义数组接受输入*/
int i;
float max;
for(i=0;i<4;i++) /*循环接受输入*/
{
printf("请输入第%d个商品的名称、价格和数量:",i+1);
scanf("%s%f%d",jia[i].name,&jia[i].danjia,&jia[i].shuliang);
jia[i].sum=jia[i].danjia*jia[i].shuliang; /*计算每种商品总价*/

}
max=jia[0].danjia;
for(i=0;i<4;i++) /*求出单价最高的商品*/
{
if(max<jia[i].danjia)
{
max=jia[i].danjia;
}
}
printf("\n");
for(i=0;i<4;i++) /*循环打印每种商品总价*/
{
printf("%s的总价是:%.2f\n",jia[i].name,jia[i].sum);
}
printf("单价最高的是:%.2f\n",max);
}


----------------解决方案--------------------------------------------------------

学员成绩管理.cpp
---------------------------------------------------
#include <stdio.h>
struct student
{
int id; /*学号*/
char name[20]; /*姓名*/
float score[3]; /*成绩*/
float avg; /*平均成绩*/
};
struct student xueyuan(); /*录入函数*/
void display(struct student stu1[],int count); /*平均成绩计算函数*/
void paixu(struct student stu2[],int count); /*排序函数*/
void main()
{
struct student stu[50];
int count=0;
char any;
do
{
stu[count]=xueyuan(); /*调用录入函数*/
count++;
printf("是否继续输入<y/n>?");
scanf(" %c",&any);
}while(any=='y');
printf("\n原始成绩为:\n");
display(stu,count); /*调用平均成绩计算函数*/
printf("\n排序后成绩为:\n");
paixu(stu,count); /*调用排序函数*/

}

struct student xueyuan()
{
struct student temp; /*定义临时变量接收输入的信息*/
int i;
float sum=0;
printf("请输入学生信息\n");
printf("学号:");
scanf("%d",&temp.id);
printf("姓名:");
scanf("%s",temp.name);
for(i=0;i<3;i++)
{
printf("成绩%d:",i+1);
scanf("%f",&(temp.score[i]));
}
for(i=0;i<3;i++) /*每个学员的总成绩计算*/
{
sum+=temp.score[i];
}
temp.avg=sum/3; /*每个学员的平均成绩计算*/
return temp;

}

void display(struct student stu1[],int count)
{
int i;
printf("学号\t姓名\t平均成绩\n");
for(i=0;i<count;i++)
{
printf("%d\t%s\t%f\n",stu1[i].id,stu1[i].name,stu1[i].avg);
}
}

void paixu(struct student stu2[],int count)
{
int i,j;
struct student temp;
for(i=0;i<count;i++)
{
for(j=0;j<count-i-1;j++)
{
if(stu2[j].avg<stu2[j+1].avg) /*对平均成绩从高到低排序*/
{
temp=stu2[j+1];
stu2[j+1]=stu2[j];
stu2[j]=temp;
}
}
}
printf("学号\t姓名\t平均成绩\n");
for(i=0;i<count;i++)
{
printf("%d\t%s\t%f\n",stu2[i].id,stu2[i].name,stu2[i].avg);
}

}


----------------解决方案--------------------------------------------------------
从最基础的一直到C课程的结束
我总共的作业 写了 100多个

时间关系有空陆续发表出来

希望给新人一些基础的东西,我自己也学的不是很深入
有些地方希望高手多多指点
----------------解决方案--------------------------------------------------------
楼上的,你是哪里的。
我也是北大青岛学员
----------------解决方案--------------------------------------------------------
我是 长沙牛耳的

----------------解决方案--------------------------------------------------------
楼主好厉害,我想多多向你学习,有时间交流下
我也是刚刚开始学的
有时间指导我一下,我的QQ:23202956

----------------解决方案--------------------------------------------------------
  相关解决方案