#include<stdio.h>
#include<stdlib.h>
#define BufLen 20
#define KeChengCount 3
typedef struct tagStuInfor
{
char xh[BufLen]//学号
char xm[BufLen]/漏早/姓名
char kchm[KeChengCount][BufLen]//课程名
float pshchj[KeChengCount]//平时成绩
float kshchj[KeChengCount]//考试成绩
float zpchj[KeChengCount]//总评成绩
float zf
}StudentInformation
typedef struct tagBookInfor
{
char shm[BufLen]//书名
float dj//单价
}BookInformation
void shurustu()
void zongfen()
void shuchumaxmin()
void sortbook()
void freeall()
//学生数,书数
int xshsh,shsh
StudentInformation *ptstu=NULL
BookInformation *ptbook=NULL
int main()
{
char in[]="data.txt",out[]="T_data.txt"
int i
float chjs[6],zf
FILE *fin,*fout
printf("250这个数字太不好了,能换成350吗?\n\n")
shurustu()
zongfen()
shuchumaxmin()
printf("请输入书数:")
scanf("%d",&shsh)
ptbook=(BookInformation*)calloc(shsh,sizeof(BookInformation))
for(i=0i<shshi++)
{
printf("请输入第%d本书的书名:",i+1)
scanf("%s",ptbook[i].shm)
printf("请输入第%d本书的单念纳价:",i+1)
scanf("%f",&ptbook[i].dj)
}
printf("\n")
sortbook()
printf("按书的单价升序排序后的结果:\n书名\t单价\n")
for(i=0i<shshi++)
{
printf("%s\t%.2f\n",ptbook[i].shm,ptbook[i].dj)
}
fin=fopen(in,"返高雀r")
fout=fopen(out,"w")
while(!feof(fin))
{
for(i=0i<6i++)
{
fscanf(fin,"%f",&chjs[i])
}
zf=0.2*(chjs[0]+chjs[1]+chjs[2])+0.8*(chjs[3]+chjs[4]+chjs[5])
printf("%.2f\n",zf)
fprintf(fout,"%.2f\r\n",zf)
}
printf("\n")
fclose(fin)
fclose(fout)
freeall()
system("PAUSE")
return EXIT_SUCCESS
}
void shurustu()
{
int i
printf("请输入学生的个数:")
scanf("%d",&xshsh)
ptstu=(StudentInformation*)calloc(xshsh,sizeof(StudentInformation))
for(i=0i<xshshi++)
{
strcpy(ptstu[i].kchm[0],"C语言")
strcpy(ptstu[i].kchm[1],"高等数学")
strcpy(ptstu[i].kchm[2],"英语")
printf("请输入第%d个学生的学号:",i+1)
scanf("%s",ptstu[i].xh)
printf("请输入第%d个学生的姓名:",i+1)
scanf("%s",ptstu[i].xm)
printf("请输入第%d个学生的C语言课程的平时成绩和考试成绩:",i+1)
scanf("%f %f",&ptstu[i].pshchj[0],&ptstu[i].kshchj[0])
printf("请输入第%d个学生的高等数学课程的平时成绩和考试成绩:",i+1)
scanf("%f %f",&ptstu[i].pshchj[1],&ptstu[i].kshchj[1])
printf("请输入第%d个学生的英语课程的平时成绩和考试成绩:",i+1)
scanf("%f %f",&ptstu[i].pshchj[2],&ptstu[i].kshchj[2])
}
printf("\n")
}
void zongfen()
{
int i
for(i=0i<xshshi++)
{
ptstu[i].zpchj[0]=0.2*ptstu[i].pshchj[0]+0.8*ptstu[i].kshchj[0]
ptstu[i].zpchj[1]=0.2*ptstu[i].pshchj[1]+0.8*ptstu[i].kshchj[1]
ptstu[i].zpchj[2]=0.2*ptstu[i].pshchj[2]+0.8*ptstu[i].kshchj[2]
ptstu[i].zf=ptstu[i].zpchj[0]+ptstu[i].zpchj[1]+ptstu[i].zpchj[2]
printf("%s的%s,%s,%s的总评成绩是:",ptstu[i].xm,ptstu[i].kchm[0],ptstu[i].kchm[1],ptstu[i].kchm[2])
printf("%.2f,%.2f,%.2f\n",ptstu[i].zpchj[0],ptstu[i].zpchj[1],ptstu[i].zpchj[2])
printf("%s的总分是:%.2f\n",ptstu[i].xm,ptstu[i].zf)
}
printf("\n")
}
void shuchumaxmin()
{
int i,min,max
min=max=0
for(i=1i<xshshi++)
{
if(ptstu[i].zf<ptstu[min].zf)
{
min=i
}
if(ptstu[i].zf>ptstu[max].zf)
{
max=i
}
}
printf("总分最高的学生的信息:\n学号\t姓名\t")
printf("%s(平时)\t%s(平时)\t%s(平时)",ptstu[max].kchm[0],ptstu[max].kchm[1],ptstu[max].kchm[2])
printf("\t%s(考试)\t%s(考试)\t%s(考试)\t总分\n",ptstu[max].kchm[0],ptstu[max].kchm[1],ptstu[max].kchm[2])
printf("%s\t%s\t",ptstu[max].xh,ptstu[max].xm)
printf("%.2f\t%.2f\t%.2f\t",ptstu[max].pshchj[0],ptstu[max].pshchj[1],ptstu[max].pshchj[2])
printf("%.2f\t%.2f\t%.2f\t%.2f\n\n",ptstu[max].kshchj[0],ptstu[max].kshchj[1],ptstu[max].kshchj[2],ptstu[max].zf)
printf("总分最低的学生的信息:\n学号\t姓名\t")
printf("%s(平时)\t%s(平时)\t%s(平时)",ptstu[min].kchm[0],ptstu[min].kchm[1],ptstu[min].kchm[2])
printf("\t%s(考试)\t%s(考试)\t%s(考试)\t总分\n",ptstu[min].kchm[0],ptstu[min].kchm[1],ptstu[min].kchm[2])
printf("%s\t%s\t",ptstu[min].xh,ptstu[min].xm)
printf("%.2f\t%.2f\t%.2f\t",ptstu[min].pshchj[0],ptstu[min].pshchj[1],ptstu[min].pshchj[2])
printf("%.2f\t%.2f\t%.2f\t%.2f\n\n",ptstu[min].kshchj[0],ptstu[min].kshchj[1],ptstu[min].kshchj[2],ptstu[min].zf)
}
void sortbook()
{
int i,j,min
BookInformation t
for(i=0i<shsh-1i++)
{
min=i
for(j=i+1j<shshj++)
{
if(ptbook[j].dj<ptbook[min].dj)
{
min=j
}
}
t=ptbook[i]
ptbook[i]=ptbook[min]
ptbook[min]=t
}
}
void freeall()
{
if(NULL!=ptstu)
{
free(ptstu)
}
if(NULL!=ptbook)
{
free(ptbook)
}
}
//data.txt文件
50 65 70 88 97 80
66 87 95 46 88 97
77 82 65 58 91 58
78 87 91 48 66 70
#include<stdio.h>void main()
{ float f=555.5678,ff
int a[10]={ 0,1,2,3,4,5,6,7,8,9 },b[10],i
FILE *fp
if ( fp=fopen("TEXT.dat","wb+") )
{ fwrite(&f,sizeof(float),1,fp)
for ( i=0i<10i++ ) fwrite(&a[i],sizeof(int),1,fp)
fclose(fp)
} else printf("无法拿携建立文纯敏橡件。\n")goto ERROREND
if ( fp=fopen("TEXT.dat"做旁,"rb") )
{ fread(&ff,sizeof(float),1,fp)
for ( i=0i<10i++ ) fread(&b[i],sizeof(int),1,fp)
fclose(fp)
} else printf("无法打开文件。\n")goto ERROREND
printf("%.2f ",ff)for ( i=0i<10i++ ) printf("%d ",b[i])printf("\n")
ERROREND:
}
这个题目很简单!你可以把我这个程序的输出部分修改一下(不修改也可以)
程序如下:
#include <stdio.h>
#define STU_NUM 10//学生数目
#define SCORE_NUM 3//课程数目
typedef struct /*定义结构体数组*/
{
char num[20]/*学号*/
char name[20]/*姓名*/
float score[SCORE_NUM]/*成绩*/
float total//总分
float average//平均分
} Student
Student stu[STU_NUM]
//输入学生信息
void input()
{
int i,j
printf("请输入%d个学生的信息:\n",STU_NUM)
for(i=0i<STU_NUMi++)
{
printf("学号:")
scanf("%s",stu[i].num)
printf("姓名:")
scanf("%s",stu[i].name)
for(j=0j<SCORE_NUMj++)
{
printf("卖知科目%d的成绩:",j+1)
scanf("%f",&stu[i].score[j])
}
}
}
//输出学生信息
void output(void)
{
int i,j
for(i=0i<STU_NUMi++)
{
printf("学生的信息如下:\n")
printf("中洞消学号:%s\n",stu[i].num)
printf("姓名:%s\n",stu[i].name)
for(j=0j<SCORE_NUMj++)
{
printf("科目%d的成绩:%f\n",j+1,stu[i].score[j])
}
printf("总分:%f\n",stu[i].total)
printf("平均分:%f\n",stu[i].average)
}
}
//计算总分和平均分
void process()
{
int i,j
for(i=0i<STU_NUMi++)
{
stu[i].total=0
for(j=0j<SCORE_NUMj++)
{
stu[i].total+=stu[i].score[j]
}
stu[i].average=stu[i].total/SCORE_NUM
}
}
//按总分进行排序(冒颤孝泡法)
void sort()
{
Student tStu
int i,j
for(i=0i<STU_NUMi++)
{
for(j=STU_NUM-1j>ij--)
{
if(stu[j].total>stu[j-1].total)
{
tStu=stu[j]
stu[j]=stu[i]
stu[i]=tStu
}
}
}
}
main()
{
input()
process()
sort()
output()
}
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)