用C语言编写程序解决问题,并画出相应的流程图

用C语言编写程序解决问题,并画出相应的流程图,第1张

#include <stdioh>
#include <stdlibh>
#include <stringh>
FILE f1,f2;
char file1[20],file2[20],name[200][20],name1[15];
int n,m,data[200][10];

void init(){
int i,j;
char ch=' ';
printf("%20c欢迎使用班级成绩管理系统\n\n",ch);
printf("请输入输入和输出文件名(中间用一个空格隔开):\n");
scanf("%s %s",file1,file2);// 1)该条语句的功能是什么?
f1=fopen(file1,"r");
f2=fopen(file2,"w");

fscanf(f1,"%d%d",&n,&m); // 2)该条语句的功能是什么?
for(i=1;i<=n;i++)
{
fscanf(f1,"%s",name[i]); // 3)该条语句的功能是什么?
data[i][0]=0; // 4)该条语句的功能是什么?没有这条语句可不可以?
for(j=1;j<=m;j++)
{
fscanf(f1,"%d",&data[i][j]);
data[i][0]+=data[i][j]; // 5)该条语句的功能是什么?
}
}

fprintf(f2,"name\tyuwen\tshuxue\tyingyu\twuli\thuaxue\tzongfen\n ");
for(i=1;i<=n;i++)
{
fprintf(f2,"%s\t",name[i]);
for(j=1;j<=m;j++)
fprintf(f2,"%d\t",data[i][j]);
fprintf(f2,"%d\n",data[i][0]);
}
fclose(f1);// 6)问什么可以在这关闭输入文件?
fclose(f2);

}
void search(char na[],char num){
int i=1,j;

while((i<=n)&&(strcmp(na,name[i])!=0))i++;

if(i<=n){
switch(num){
case '1':printf("%s的语文成绩为%d!\n",na,data[i][1]);break;
case '2':printf("%s的数学成绩为%d!\n",na,data[i][2]);break;
case '3':printf("%s的英语成绩为%d!\n",na,data[i][3]);break;
case '4':printf("%s的物理成绩为%d!\n",na,data[i][4]);break;
case '5':printf("%s的化学成绩为%d!\n",na,data[i][5]);break;
case 'a':
printf("%s的各科成绩为:\n",name[i]);
printf("语文\t数学\t英语\t物理\t化学\t总成绩\n");
for(j=1;j<=m;j++)
printf("%d\t",data[i][j]);
printf("%d\n",data[i][0]);
break;
default: printf("没有这种查询方式,请确认后再次输入!\n");
}

}
else printf("查无此人,请确认后再次查询!\n");

printf("\n\n");
}
main(){
init();//数据初始化
printf("数据初始化结束!\n\n");
printf("------------------------------------------------\n\n");

char na[20];
char num;
while(1){ // 7)该条语句的功能是什么?
//scanf("%s%c%c",na,&num,&num); // 8)此处的输入可不可以用这条语句?
printf("请输入学生的姓名和要查询成绩的科目代码(中间用一个空格隔开):\n(1 语文 2 数学 3 英语 4 物理 5 化学 a 所有科目成绩 q 退出)\n");
scanf("%s",na);
if(strcmp(na,"q")==0)break; // 9)问什么要用这条语句strcmp(na,"q")==0?
scanf("%c%c",&num,&num); // 10)为什么用了两次&num?
search(na,num);
printf("------------------------------------------------\n\n");
printf("\n请输入新的查询:\n\n");

}
system("pause");
}
稍改一下就行了!

流程图(Flow Chart):使用图形表示算法的思路是一种极好的方法,可以用多种软件来绘制,连Windows附带的画图也可以。
下面简要描述一些常见的流程图绘制软件:
1Visio是当今最优秀的绘图软件之一,它将强大的功能和易用性完美结合,可广泛应用于电子、机械、通信、建筑、软件设计和企业管理等众多领域。
2power designer是一款比较不错的画流程图软件。
3框图宝(MyFlowChart)是youfabao的在线流程图软件,可以在线绘制流程图,简单易用,基于云计算,数据永不丢失。
4visual graph专业图形系统:此系统为图形控件,在NET开发平台下可以灵活应用,delphi中也可以使用。简单易用,业内应用较广泛。
5Word附带的绘图功能。
6Windows附带的画图。

这个流程图就是用来简单说明 switch 语句是怎么回事的!下面这段伪代码和你这个流程图意思一样:
switch(表达式){
case 常量表达式1:
语句1;
case 常量表达式2:
语句2;
case 常量表达式n:
语句n;
default:
语句n + 1;
}
稍微解释一下:当程序运行到switch语句块的时候,首先会计算“计算表达式的值”,也就是我写的switch括号里面的表达式;然后根据计算出来的值进行判断,如果该值等于常量表达式1,那就执行语句1,然后退出,如果该值等于常量表达式2,那就执行语句2,然后退出,以此类推;如果计算结果和下面的值都不匹配,那就执行default下面的语句,即n+1。注意每个语句后面都都要加break,否则会所有语句都会顺序执行的。

整个程序包括三个分支,首先要求进入登录页面,在这里进行登录,登录后可以选择三种 *** 作,分别是添加查询和管理。
在选择添加时可以添加新档案,并检测新档案信息是否合法,不合法要求重新输入,合法则显示输出结果
选择查询时可以查询档案信息并输出结果
选择管理时可以进行档案修改或删除档案,完成修改或删除 *** 作后显示输出结果页。

1题目:反向输出一个链表
#include
#include
struct
list
{
int
data;
struct
list
next;
};//结构体定义
typedef
struct
list
node;
typedef
node
link;
void
main()
{
link
ptr,head,tail;
int
num,i;
tail=(link)malloc(sizeof(node));//分配指针空间
tail->next=NULL;
ptr=tail;
printf("\nplease
input
5
data==>\n");
for(i=0;i<=4;i++)//读入5组数据
{
scanf("%d",&num);
ptr->data=num;
head=(link)malloc(sizeof(node));
head->next=ptr;
ptr=head;
}
ptr=ptr->next;
while(ptr!=NULL)//输出刚才输入的值
{
printf("The
value
is
==>%d\n",ptr->data);
ptr=ptr->next;
}}
2时间函数举例4,一个猜数游戏,判断一个人反应快慢
#include
#include
#include
void
main()
{char
c;
clock_t
start,end;
time_t
a,b;
double
var;
int
i,guess;
srand(time(NULL));
printf("do
you
want
to
play
it('y'
or
'n')
\n");
loop:
while((c=getchar())=='y')
{
i=rand()%100;//100以内的随机数
printf("\nplease
input
number
you
guess:\n");
start=clock();//从你开始猜第一个数计时
a=time(NULL);
scanf("%d",&guess);
while(guess!=i)//猜不对给出提示,并让你接着猜
{if(guess>i)
{printf("please
input
a
little
smaller\n");
scanf("%d",&guess);}
else
{printf("please
input
a
little
bigger\n");
scanf("%d",&guess);}
}
if((c=getch())=='y');如果什么时候没提示了,说明你猜对了。这时要按个‘y’才能停止计时
end=clock();
b=time(NULL);
//输出你的结果
printf("\1:
It
took
you
%63f
seconds\n",var=(double)(end-start)/182);
printf("\1:
it
took
you
%63f
seconds\n\n",difftime(b,a));
//判断你所属于的级别
if(var<15)
printf("\1\1
You
are
very
clever!
\1\1\n\n");
else
if(var<25)
printf("\1\1
you
are
normal!
\1\1\n\n");
else
printf("\1\1
you
are
stupid!
\1\1\n\n");
printf("\1\1
Congradulations
\1\1\n\n");
printf("The
number
you
guess
is
%d",i);
}
printf("\ndo
you
want
to
try
it
again(\"yy\"or\"n\")\n");
}
3计算字符串中子串出现的次数
#include
#include
void
main()
{
char
str1[20],str2[20],p1,p2;
int
sum=0;
printf("please
input
two
strings\n");//读入两个字符串
scanf("%s%s",str1,str2);
p1=str1;p2=str2;//
while(p1!='\0')//字符串1不结束时,循环
{
if(p1==p2)//字符串1、2中字符相同,指针同时向后移一位
{while(p1==p2&&p2!='\0')
{p1++;
p2++;}
}
else
p1++;
if(p2=='\0')//字符串1中出现了和字符串2中相同的字符串
sum++;//计数加一
p2=str2;//p2重新移向数组头
}
printf("%d",sum);//输出结果
getch();
}
4有n个整数,使其前面各数顺序向后移m个位置,最后m个数变成最前面的m个数
#
include
void
main()
{
int
number[20],n,m,i;
printf("the
total
numbers
is:");//要输入数据的个数
scanf("%d",&n);
printf("back
m:");//移动的位数
scanf("%d",&m);
for(i=0;i
array;p--)//所有数据向后移动一位
p=(p-1);
array=array_end;
m--;
if(m>0)
move(array,n,m);//判读是否移动完成
}

#include<stdlibh>
int N1,N2,kk1,kk2,kk3;
struct couse head1;
struct student head2;
struct couse//课程信息结构体
{
int num1;
char name1[20];
int score;
int nelepeo;//课程已选人数
int Melepeo;//课程人数上限
struct couse next;
};
struct student//学生信息结构体
{
int num2;
char name2[20];
int nelenum[50];//已选课程编号
int nelen;//已选课程数量
struct student next;
};
void Ms()
{
for(kk1=0;kk1<1100;kk1++)
for(kk2=0;kk2<1200;kk2++)
for(kk3=0;kk3<1200;kk3++);
}
void keyboardc()//录入课程子函数(从键盘录入)
{
struct couse p1,p2;
N1=0;
p1=p2=(struct couse)malloc(sizeof(struct couse));
printf("课程编号\t课程名称\t学分\t课程人数上限\n");
scanf("%d%s%d%d",&p1->num1,p1->name1,&p1->score,&p1->Melepeo);
p1->nelepeo=0;
head1=NULL;
while(p1->num1!=0)
{
N1=N1+1;
if(N1==1)head1=p1;
else p2->next=p1;
p2=p1;
p1=(struct couse )malloc(sizeof(struct couse));
scanf("%d%s%d%d",&p1->num1,p1->name1,&p1->score,&p1->Melepeo);
p1->nelepeo=0;
}
p2->next=NULL;
}
void filec()//录入键盘子函数(从文件录入)
{
FILE fp;
char filepath[20];
struct couse p1,p2;
N1=0;
printf("输入要读入的文件路径:");
getchar();
gets(filepath);
if((fp=fopen(filepath,"r"))==NULL)
{
printf("找不到%s文件!\n",filepath);
exit(0);
}
p1=p2=(struct couse)malloc(sizeof(struct couse));
fscanf(fp,"%d%s%d%d%d",&p1->num1,p1->name1,&p1->score,&p1->nelepeo,&p1->Melepeo);
head1=NULL;
while(!feof(fp))
{
N1=N1+1;
if(N1==1)head1=p1;
else p2->next=p1;
p2=p1;
p1=(struct couse )malloc(sizeof(struct couse));
fscanf(fp,"%d%s%d%d%d",&p1->num1,p1->name1,&p1->score,&p1->nelepeo,&p1->Melepeo);
}
p2->next=NULL;
}
void inputc()//录入课程主函数
{
int i;
printf("\t\t\t录入课程信息\n");
printf("\n1从键盘录入\n");
printf("2从文件录入\n");
printf("3返回主菜单\n");
printf("请选择(1~3):\n");
scanf("%d",&i);
switch(i)
{
case(1):keyboardc();break;
case(2):filec();break;
case(3):break;
}
}
void insertc(struct couse incouse)//课程管理子函数(增加课程)
{
struct couse p0,p1,p2;
p1=head1;
p0=incouse;
if(head1==NULL)
{
head1=p0;
p0->next=NULL;
}
else
{
while((p0->num1 > p1->num1) && (p1->next!=NULL))
{
p2=p1;
p1=p1->next;
}
if(p0->num1 <= p1->num1)
{
if(head1==p1) head1=p0;
else p2->next=p0;
p0->next=p1;
}
else
{
p1->next=p0;
p0->next=NULL;
}
}
N1=N1+1;
}
void delc(int num1)//课程管理子函数(删除课程)
{
struct couse p1,p2;
if(head1==NULL)
{
printf("\n没有课程,无法删除!\n");
goto end;
}
p1=head1;
while(num1!=p1->num1 && p1->next!=NULL)
{
p2=p1;
p1=p1->next;
}
if(num1==p1->num1)
{
if(p1==head1) head1=p1->next;
else p2->next=p1->next;
printf("已删除该编号课程!\n");
N1=N1-1;
}
else printf("无该编号的课程!\n");
end:;
}
void managementc()//课程管理主函数
{
struct couse incouse;
int i,num1;
printf("\t\t\t课程管理\n");
printf("1新增课程\n");
printf("2删除课程\n");
printf("3返回主菜单\n");
printf("请选择(1~3):\n");
scanf("%d",&i);
switch(i)
{
case(1):
{
incouse=(struct couse )malloc(sizeof(struct couse));
printf("课程编号\t课程名称\t学分\t课程人数上限\n");
scanf("%d%s%d%d",&incouse->num1,incouse->name1,&incouse->score,&incouse->Melepeo);
incouse->nelepeo=0;
insertc(incouse);
break;
}
case(2):
{
printf("请输入要删除课程的编号:\n");
scanf("%d",&num1);
delc(num1);
break;
}
case(3):break;
}
}
void keyboards()//录入学生信息子函数(从键盘录入)
{
int i;
struct student p1,p2;
N2=0;
p1=p2=(struct student )malloc(sizeof(struct student));
printf("学生学号\t学生姓名\n");
scanf("%d%s",&p1->num2,p1->name2);
p1->nelen=0;
for(i=0;i<20;i++) p1->nelenum[i]=0;
head2=NULL;
while(p1->num2!=0)
{
N2=N2+1;
if(N2==1)head2=p1;
else p2->next=p1;
p2=p1;
p1=(struct student )malloc(sizeof(struct student));
scanf("%d%s",&p1->num2,p1->name2);
p1->nelen=0;
for(i=0;i<20;i++) p1->nelenum[i]=0;
}
p2->next=NULL;
}
void files()//录入学生信息子函数(从文件录入)
{
int i=0;
FILE fp;
char filepath[20];
struct student p1,p2;
N2=0;
printf("输入要读入的文件路径:");
getchar();
gets(filepath);
if((fp=fopen(filepath,"r"))==NULL)
{
printf("找不到%s文件!\n",filepath);
exit(0);
}
p1=p2=(struct student)malloc(sizeof(struct student));
fread(p1,sizeof(struct student),1,fp);
head2=NULL;
while(!feof(fp))
{
i=0;
N2=N2+1;
if(N2==1)head2=p1;
else p2->next=p1;
p2=p1;
p1=(struct student )malloc(sizeof(struct student));
fread(p1,sizeof(struct student),1,fp);
}
p2->next=NULL;
}
void inputs()//录入学生信息主函数
{
int i;
printf("\t\t\t录入学生信息\n");
printf("\n1从键盘录入\n");
printf("2从文件录入\n");
printf("3返回主菜单\n");
printf("请选择(1~3):\n");
scanf("%d",&i);
switch(i)
{
case(1):keyboards();break;
case(2):files();break;
case(3):break;
}
}
void inserts(struct student incouse)//学生信息管理子函数(填加学生信息)
{
struct student p0,p1,p2;
p1=head2;
p0=incouse;
if(head2==NULL)
{
head2=p0;
p0->next=NULL;
}
else
{
while((p0->num2 > p1->num2) && (p1->next!=NULL))
{
p2=p1;
p1=p1->next;
}
if(p0->num2 <= p1->num2)
{
if(head2==p1) head2=p0;
else p2->next=p0;
p0->next=p1;
}
else
{
p1->next=p0;
p0->next=NULL;
}
}
N2=N2+1;
}
void dels(int num2)//学生信息管理子函数(删除学生信息)
{
struct student p1,p2;
if(head2==NULL)
{
printf("\n没有该学生信息,无法删除!\n");
goto end;
}
p1=head2;
while(num2!=p1->num2 && p1->next!=NULL)
{
p2=p1;
p1=p1->next;
}
if(num2==p1->num2)
{
if(p1==head2) head2=p1->next;
else p2->next=p1->next;
printf("已删除该学生信息!\n");
N2=N2-1;
}
else printf("无该学号的学生!\n");
end:;
}
void managements()//学生信息管理主函数
{
struct student incouse;
int i,num2;
printf("\t\t\t学生信息管理\n");
printf("1新增学生信息\n");
printf("2删除学生信息\n");
printf("3返回主菜单\n");
printf("请选择(1~3):\n");
scanf("%d",&i);
switch(i)
{
case(1):
{
incouse=(struct student )malloc(sizeof(struct student));
incouse->nelen=0;
incouse->nelenum[0]=0;
printf("学生学号\t学生姓名\n");
scanf("%d%s",&incouse->num2,incouse->name2);
inserts(incouse);
break;
}
case(2):
{
printf("请输入要删除学生的学号:\n");
scanf("%d",&num2);
dels(num2);
break;
}
case(3):break;
}
}
void elect(struct student s)//选课
{
struct couse p;
int num1,i;
printf("请输入要选课的编号:\n");
scanf("%d",&num1);
for(i=0;s->nelenum[i]!=0;i++);
s->nelenum[i]=num1;
(s->nelen)++;
p=head1;
while(p->num1!=num1) p=p->next;
(p->nelepeo)++;
}
void cheak()//学生选课子函数(查询可选课程)
{
char e;
struct couse c;
struct student s;
int num2,i,j=0,t=0;
printf("请输入你的学号:");
scanf("%d",&num2);
s=head2;
while(s->num2!=num2 && s->next!=NULL) s=s->next;
if(s->num2!=num2)
{
printf("不存在你的信息,请进入主菜单录入你的信息!\n");
goto end;
}
c=head1;
printf("你的可选课程编号:\n");
while(c!=NULL)
{
for(t=0,i=0;s->nelenum[i]!=0;i++)
{
if(c->num1==s->nelenum[i]) t=1;
}
if(t==0 && (c->nelepeo!=c->Melepeo))
{
printf("%d\n",c->num1);
j++;
}
c=c->next;
}
if(j==0)
{
printf("你已选完所有课程,无法再多选!\n");
goto end;
}
printf("选课(y/n):\n");
getchar();
e=getchar();
i=0;
while(e=='y')
{
elect(s);
printf("继续选课(y/n):\n");
getchar();
e=getchar();
}
end:;
}
void back(struct student p)//退课
{
struct couse p1;
int num1,i,j;
printf("请输入你要退掉的课程编号:\n");
scanf("%d",&num1);
p1=head1;
while(p1->num1!=num1) p1=p1->next;
for(i=0;p->nelenum[i]!=num1;i++);
for(j=i;p->nelenum[j]!=0;j++) p->nelenum[j]=p->nelenum[j+1];
p->nelenum[--j]=0;
(p1->nelepeo)--;
printf("退课成功!\n");
}
void hcheak()//学生选课子函数(查询已选课程)
{
char c;
struct couse p0;
struct student p;
int num2,i,f=0;
printf("请输入学号:\n");
scanf("%d",&num2);
p=head2;
while(p->num2!=num2 && p!=NULL) p=p->next;
if(p==NULL)
{
printf("不存在你的信息,请回主菜单录入信息:\n");
goto end;
}
printf("已选课程编号:\n");
if(p->nelenum[0]==0)
{
printf("你还没选课!\n");
goto end;
}
for(i=0;p->nelenum[i]!=0;i++)
{
printf("%d\n",p->nelenum[i]);
p0=head1;
while(p0->num1!=p->nelenum[i]) p0=p0->next;
f=f+p0->score;
}
printf("总学分:%d\n",f);
printf("是否进行退课(y/n)");
getchar();
c=getchar();
while(c=='y')
{
back(p);
printf("继续退课(y/n)");
getchar();
c=getchar();
(p->nelen)--;
}
end:;
}
void elective()//学生选课主函数
{
int i;
printf("\t\t\t学生选课\n");
printf("1查询可选课程\n");
printf("2查询已选课程\n");
printf("3返回主菜单\n");
printf("请输入(1~3):\n");
scanf("%d",&i);
switch(i)
{
case(1):cheak();break;
case(2):hcheak();break;
case(3):break;
}
}
void listc()//输出课程信息
{
struct couse p;
p=head1;
printf("课程编号 课程名称 学分 课程已选人数 课程人数上限\n");
while(p!=NULL)
{
printf("%-8d%10s%6d%8d%12d\n",p->num1,p->name1,p->score,p->nelepeo,p->Melepeo);
p=p->next;
}
}
void lists()//输出学生信息
{
struct student p;
p=head2;
printf("学生学号 学生姓名 已选课程数量\n");
while(p!=NULL)
{
printf("%-4d %10s %6d\n",p->num2,p->name2,p->nelen);
p=p->next;
}
}
void intoc()//存储课程信息
{
FILE fp;
struct couse p;
char filepath[30];
printf("输入课程信息要保存的文件路径:");
getchar();
gets(filepath);
if((fp=fopen(filepath,"w"))==NULL)
{
printf("\n保存失败!");
exit(0);
}
p=head1;
while(p!=NULL)
{
fprintf(fp,"%d %s %d %d %d\n",p->num1,p->name1,p->score,p->nelepeo,p->Melepeo);
p=p->next;
}
fclose(fp);
printf("课程信息已保存在%s中!\n",filepath);
}
void intos()//存储学生信息
{
FILE fp;
struct student p;
char filepath[30];
printf("输入学生信息要保存的文件路径:");
getchar();
gets(filepath);
if((fp=fopen(filepath,"w"))==NULL)
{
printf("\n保存失败!");
exit(0);
}
p=head2;
while(p!=NULL)
{
fwrite(p,sizeof(struct student),1,fp);
p=p->next;
}
fclose(fp);
printf("学生信息已保存在%s中!\n",filepath);
}
void into()//存储信息
{
int i;
printf("1存储课程信息\n");
printf("2存储学生信息\n");
printf("3返回主菜单\n");
printf("请输入(1~3)\n");
scanf("%d",&i);
switch(i)
{
case(1):intoc();break;
case(2):intos();break;
case(3):break;
}
}
void store()//信息主函数
{
int i;
printf("\t\t系统信息查看及存储\n");
printf("1查看课程信息\n");
printf("2查看学生信息\n");
printf("3存储信息\n");
printf("4返回主菜单\n");
printf("请输入(1~4):\n");
scanf("%d",&i);
switch(i)
{
case(1):listc();break;
case(2):lists();break;
case(3):into();break;
case(4):break;
}
}
int main()//主函数
{
int i;
start:
printf("\n\t\t\t欢迎使用学生选课系统!\n");
printf("菜单:\n");
printf("1录入课程信息\n");
printf("2课程管理\n");
printf("3录入学生信息\n");
printf("4学生信息管理\n");
printf("5学生选课\n");
printf("6系统信息查看及存储\n");
printf("7退出系统\n");
printf("\n请输入菜单选项(1~7):\n");
scanf("%d",&i);
if(i<1 || i>7)
{
printf("输入错误,请重输:\n");
goto start;
}
switch(i)
{
case(1):
{
system("cls");
inputc();
goto start;
break;
}
case(2):
{
system("cls");
managementc();
goto start;
break;
}
case(3):
{
system("cls");
inputs();
goto start;
break;
}
case(4):
{
system("cls");
managements();
goto start;
break;
}
case(5):
{
system("cls");
elective();
goto start;
break;
}
case(6):
{
system("cls");
store();
goto start;
break;
}
case(7):
{
system("cls");
printf("感谢使用本系统!\n\n再见!\n");
}
}
return(0);
}

本人将功能重现,代码如下:(解决了你的源代码中无法正常循环运行的问题)

#include<stdioh>

#define N 4 //人数

#define KMS 3 //科目数

struct student

{

char name[20];

float score[3];//score[0]语文,score[1]数学,score[2]历史

float ave;

}stu[N];

void input(student p[],int n)

{

int i;

for(i=0;i<n;i++)

{

scanf("%s%f%f%f",p[i]name,&p[i]score[0],&p[i]score[1],&p[i]score[2]);

}

}

void perave(student p[],int n)

{

int i;

for(i=0;i<n;i++)

p[i]ave=(p[i]score[0]+p[i]score[1]+p[i]score[2])/30;

}

void ehsbave(float p[],student q[],int n)//main()中p[]用于存储单科均分p[KMS]

{

int i,j;

for(i=0;i<KMS;i++)

{

p[i]=0;

for(j=0;j<n;j++)

p[i]+=q[j]score[i];

p[i]/=n;

}

}

void search(student p[],int n,int l1,int l2)

{

int r,c;

l1=0;l2=0;

for(r=0;r<n;r++)

for(c=0;c<KMS;c++)

if(p[l1]score[l2]<p[r]score[c])

{

l1=r;

l2=c;

}

}

main()

{

float a[KMS];

int r,c,i,p_r,p_c;

char subject[KMS][20]={"语文","数学","历史"},pd='y';

p_r=&r;p_c=&c;

for(;pd=='y';)

{

printf("输入%d名学生的姓名,语文,数学,历史成绩\n",N);

input(stu,N);

perave(stu,N);

ehsbave(a,stu,N);

search(stu,N,p_r,p_c);

printf("姓名\t平均成绩\n");

for(i=0;i<N;i++)

printf("%s\t%2f\n",stu[i]name,stu[i]ave);

printf("科目\t平均成绩\n");

for(i=0;i<KMS;i++)

printf("%s\t%2f\n",subject[i],a[i]);

printf("单科最高:\n姓名\t科目\t分数\n%s\t%s\t%2f\n",stu[r]name,subject[c],stu[r]score[c]);

printf("是否继续(y/n)\n");

getchar();

pd=getchar();

}

}


欢迎分享,转载请注明来源:内存溢出

原文地址: https://www.outofmemory.cn/zz/13222448.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-06-22
下一篇 2023-06-22

发表评论

登录后才能评论

评论列表(0条)

保存