c语言写一个判断学生最高成绩
① 输入一个学生的三门成绩,计算并输出最高分和最低分的C语言编程怎么写
#include<stdio.h>
#include<stdlib.h>
intmin(inta,intb)
{
if(a>b)
returnb;
else
returna;
}
intmax(inta,intb)
{
if(a>b)
returna;
else
returnb;
}
intmain()
{
printf("请输入学源生的成绩:
");
intas,sd,df;
scanf("%d%d%d",&as,&sd,&df);
printf("最高成绩是:%d
",max(as,max(sd,df)));
printf("最低成绩是:%d",min(as,min(sd,df)));
return0;
}
② c语言编写一个程序,已知20个学生成绩,求最高成绩和该生序号
#include<stdio.h>
void main()
{
int ch[10];
int i,max=0,xh;
printf("请输入10个学生的成绩:\n");
for(i=0;i<10;i++)
{
scanf("%d",&ch[i]);
if(ch[i]>max)
{
max=ch[i];
xh=i;
}
}
printf("成绩最高为:%d\n",max);
printf("该生回的序号为答:%d\n",xh);
}
③ 用C语言编写一个程序,输入N个学生的学号和成绩,求平均成绩,并输出其中最高分和最低分学生学号和成绩
#include<stdio.h>
#defineN5
structStu{
intid;
doublescore;
};
voidsortScore(Stus[N]){
inti;
intmin=0,max=0;
for(i=1;i<N;i++){
if(s[i].score>s[max].score)max=i;
if(s[i].score<s[min].score)min=i;
}
printf("%d%.2lf ",s[max].id,s[max].score);
printf("%d%.2lf ",s[min].id,s[min].score);
}
intmain(){
Stus[N];
inti;
doubleans=0;
for(i=0;i<N;i++){
scanf("%d%lf",&s[i].id,&s[i].score);
ans+=s[i].score;
}
printf("%.2lf ",ans/N);
sortScore(s);
}
④ 编写一个程序,计算若干学生的某门功课的平均成绩,找出最高分和最低分(c语言作业,不太会,拜托了)
#include <stdio.h>
#include <stdlib.h>
#include <math.h>
#define N 5
void main()
{
float a[N],aver,stdev,max,min;
int i;
for(i=0;i<N;i++)
scanf("%f",&a[i]);
aver=0;max=min=a[i]=0;
for(i=0;i<N;i++)
{aver=aver+a[i];
if(max<a[i]) max=a[i];
if(min>a[i]) min=a[i];}
aver=aver/N;
stdev=0;
for(i=0;i<N;i++)
stdev=stdev+(a[i]-aver)*(a[i]-aver);
stdev=sqrt(stdev/N);
for(i=0;i<N;i++)
printf("%f,%f,%f,%f,%f",aver,stdev,max,min);
}
⑤ 用C语言编写:有5个学生的成绩,找出最高分的那个学生,找出不及格的学生。
#include<stdio.h>
int main()
{
int a[5];
int i, index = 0;
printf("请输入五个学生回的成绩, 用空格隔开:\n");
for(i = 0; i < 5; ++i)
{
答scanf("%d", &a[i]);
}
index = 0;
for (i = 0; i < 5; ++i)
{
if (a[index] < a[i])
{
index = i;
}
}
printf("最高分:%d\n", a[index]);
printf("不及格分数:\n");
for(i = 0; i <5; ++i)
{
if (a[i] < 60)
{
printf("%d\n", a[i]);
}
}
}
// 楼主在考试?
⑥ c语言:编写程序输入 10 个学生的成绩,计算并输出最高成绩和平均成绩,然后统计低于平均成绩的人数
#include<stdio.h>
int main()
{
int i;
float a[10],min,max,avg;//max表示最高分,min表示最低分,avg表示平均分
printf("请输入10位学生的分数 ");
printf("******************************** ");
for(i=0;i<=9;i++)
{
printf("请输入一位学生的分数:");
scanf("%f",&a<i>);
}
max=min=avg=a[0];
for(i=1;i<=9;i++)
{
if(min>a<i>)
{min=a<i>;}
if(max<a<i>)
{max=a<i>;}
avg=avg+a<i>;
}
avg=avg/10;
printf("max=%f ",max);
printf("min=%f ",min);
printf("max=%f ",avg);
printf("******************************** ");
}
(6)c语言写一个判断学生最高成绩扩展阅读:
include用法:
#include命令预处理命令的一种,预处理命令可以将别的源代码内容插入到所指定的位置;可以标识出只有在特定条件下才会被编译的某一段程序代码;可以定义类似标识符功能的宏,在编译时,预处理器会用别的文本取代该宏。
插入头文件的内容
#include命令告诉预处理器将指定头文件的内容插入到预处理器命令的相应位置。有两种方式可以指定插入头文件:
1、#include<文件名>
2、#include"文件名"
⑦ 有一个数组,内放 10个学生成绩,用C语言写一个函数,求出平均分、 最高分、最低分。
编译的预处理命令没有,应该写上#include<stdio.h>,还有改为int main() 末尾加上return 0;
就可以运行了,运行检验程序没有问题
这是修改之后的结果
#include<stdio.h>
float max=0, min=0;
float average(float array[],int n);
int main()
{
float ave,score[10]; int i;
for(i=0;i<10;i++)
scanf("%f",&score[i]);
ave = average(score,10);
printf("max=%6.2f\nmin=%6.2f\n",max,min);
printf("average=%6.2f\n",ave);
return 0;
}
float average(float array[],int n)
{
int i; float aver,sum=array[0];
max=min=array[0];
for(i=1;i<n;i++)
{
if (array[i] > max) max = array[i];
if (array[i] < min) min = array[i];
sum = sum + array[i];
}
aver = sum/n;
return aver;
}
⑧ c语言写程序。打开一个包含学生名字和成绩的文件,要求找出成绩最高的学生的名字输出。
只是找出最高学生的名字,连排序都不用
假定文件数据是这样的:
----------------------
..............
王尼玛 99
曹尼玛 100
王尼美 89
................
----------------------
#include<stdio.h>
#include<string.h>
intmain()
{
FILE*file=fopen("FILEPATH","r");
if(file==NULL)
{
printf("文件打开失败");
return-1;
}
intgrades=0,num;
charname[10],getname[10];
while(fscanf(file,"%s%d",getname,&num)!=EOF)
{
if(num>grades)
{
grades=num;
strcpy(name,getname);
}
}
printf("第一名:%s",name);
return0;
}
应该就是这样了吧,我也没编译试过
⑨ 用c语言编写 一数组存放有8个学生的成绩,写一个函数求出平均分、最高分和最低分
#include<stdio.h>
int main()
{
float score[8]={68,72,79,86,84,93,99,100};
int i,j;
float t,sum=0;
for(i=0;i<7;i++)
for(j=i+1;j<8;j++)
if(score[i]<score[j])
{
t=score[i];
score[i]=score[j];
score[j]=t;
}
for(i=0;i<8;i++)
sum+=score[i];
printf("the max score:%d\n",score[0]);
printf("the min score:%d\n",score[7]);
printf("the average score:%f\n",sum/8.0);
getch();
return 0;
}
⑩ C语言编写一个成绩用来输入学生学号姓名成绩,并统计学生成绩的最大值,最小值,平均值,方差,判断学生
1、更多交流可参考我空间主页有关文章。
2、#include<stdio.h>
#include<stdlib.h>
#include<conio.h>
/*定义结构体*/
struct student
{
int num;
float score;
struct student *next;
};
/*创建一个只有头结点的空链表*/
struct student *create_head()
{
struct student *head;
head=(struct student*)malloc(sizeof (struct student) );
if(head==NULL) //小心别漏这个
{
printf("申请头结点失败!\n");
return NULL;
}
head->next=NULL;
return head;
}
/*将s指向的结点插入链表,使链表保持升序,并返回头结点*/
struct student *insert(struct student *head,struct student *s)
{
struct student *p=head;
while(p->next!=NULL&&s->score>p->next->score)//特别注意&&左右不能写反,若s最大,最后p->next=NULL,p->next->score运行出错
p=p->next;
if(p->next==NULL) //s->score最大的情况 //其实两种情况可以并在一块写
{
p->next=s; //连接结点
s->next=NULL; //p->next就等于NULL
}
else
{
p->next=s; //连接结点
s->next=p->next;
}
return head ;
}
/*查找符合条件的结点,并返回指向该结点的指针*/
struct student *search(struct student *head)
{
struct student *p=head->next;
int num;
printf("请输入要查找学生的学号:\n");
scanf("%d",&num);
while(p!=NULL&&p->num!=num) //特别注意两条件不能写反,若写反最后p指向NULL时p->num找不到 运行出错
p=p->next;
if(p==NULL) //特别注意两个if不能调换,若调换最后p指向NULL时p->num运行出错
{
printf("找不到符合条件的结点!!!");
return NULL; //查找不到返回空指针
}
if(p->num==num)
{
printf("找到符合条件的结点\n该结点为%d\t%f",p->num,p->score);
return p; //返回查找到的指针
}
}
/*输出链表各结点的值,也称对链表的遍历*/
void print(struct student *head)
{
struct student *p;
printf(" 链表如下: \n");
p=head->next;
while(p!=NULL)
{
printf("%d\t%.1f\n",p->num,p->score);
p=p->next;
}
}
/*释放链表*/
void free_list(struct student *head)
{
struct student *p=head ;
printf("释放链表:\n");
while(p!=NULL)
{
head=head->next;
free(p);
p=head;
}
printf("释放链表成功!\n");
}
/*删除链表中值为num的结点,并返回链表的首指针*/
struct student *delete_note(struct student *head,int num_x)
{
struct student *p1=head->next , *p2=head ;
while(p1!=NULL&&p1->num!=num_x) //特别注意&&左右条件不能调换,若调换如果p1指向NULL时p1->num运行出错
{
p2=p1;
p1=p1->next;
}
if(p1==NULL) //特别注意两个if不能调换,若调换如果p1指向NULL时,p1->num运行出错
printf("找不到符合删除要求的结点!!!\n");
if(p1->num==num_x)
{
p2->next=p1->next;
free(p1);
printf("结点删除成功!\n");
}
return head;
}
/*完整的有头结点链表操作程序*/
void main()
{
struct student *p , *head ;
char c;
int num ;
float score ;
printf("有头结点链表操作程序:\n");
head=create_head();
while(1)
{
printf("I:插入结点(自动升序) P:输出链表 S:查找结点 D:删除结点 E:释放链表并退出程序! ");
c=getch();
switch(c)
{
case'I':
printf("请分别输入要插入学生的学号和分数:\n");
scanf("%d%f",&num,&score);
p=(struct student*)malloc( sizeof(struct student) );
if(p==NULL)
{
printf("申请该结点失败!!!\n");
exit (0) ;
}
p->num=num; p->score=score; //给p赋值
insert(head,p);
printf("插入成功!\n");
break;
case'P':
print(head);
break;
case'S':
search(head);
break;
case'D':
printf("请输入要删除的学生的学号:\n");
scanf("%d",&num);
delete_note(head,num);
break;
case'E':
free_list(head);
exit (0);
}
}
}