成绩最高的学生
① C语言输出三个学生中成绩最高的学生的成绩
输入可以改为:
scanf("%s%d%d%c",stu[0].name,&stu[0].number,&stu[0].score,&stu[0].sex);
注意:
1.scanf内不能有
2.注意输入的类型(你的number为int类型,输入时为%d)
3.类型为%s的时候,后面的stu[0].name前就不需要加上取地址符&了
输入顺序改为上述之后,输入时依次为:
1.输入姓名字符串,以回车结束
2.接着输入一个整数表示学号,以空格,或tab键,或回车结束
3.再输入一个整数表示成绩,以下一个要输入的字符(即表示的是性别)结束
4.性别在3中已经输入,此时直接回车结束整个输入。
一般的,当一次性要输入好几个不同类型的数据时,字符型的一般最后输入。(此题中如果学号为字符串类型,亦不影响输入的结果,只是此时只能输入一个字符串代表学号后以回车结束了)
② SQL查询每课成绩最高的学生的信息
select
distinct
*
from
(
select
需要抽取的字段
from
学生成绩内表容
a
where
a.语文
=
(select
max(语文)
from
学生成绩表)
union
all
select
需要抽取的字段
from
学生成绩表
a
where
a.数学
=
(select
max(数学)
from
学生成绩表)
union
all
select
需要抽取的字段
from
学生成绩表
a
where
a.英语
=
(select
max(英语)
from
学生成绩表)
。。。)
b
如果需要包含学科成绩,那还要做处理。
③ C语言学生成绩最高平均
下面的程序先输入10个学生的数据,输入三门课的成绩完成后,计算每位学生的总分以及平均分。然后找出最高分学生。最后输出最高分学生的数据,还有三门课的总平均成绩。
#include<stdio.h>
#include<stdlib.h>
#include<string.h>
#defineN10
structstu
{
intgrade[3];
charname[10];
charnumber[10];
intsum;
doubleave;
};
voidf_input(structstu*temp);
structstuf_max(structstu*temp);
voidf_print(structstus);
voidf_print_ave(structstu*temp);
intmain()
{
structstus[N];
structstus_max;
f_input(s);
s_max=f_max(s);
printf(" thesummaxis: ");
f_print(s_max);
f_print_ave(s);
return0;
}
voidf_input(structstu*temp)
{
inti;
intj;
for(i=0;i<N;i++)
{
intsum=0;
printf("pleaseinput%dstudentname: ",i+1);
scanf("%s",temp->name);
printf("pleaseinput%dstudentnumber: ",i+1);
scanf("%s",temp->number);
for(j=0;j<3;j++)
{
printf("pleaseinput%dgrade: ",j+1);
scanf("%d",&temp->grade[j]);
sum+=temp->grade[j];
}
temp->sum=sum;
temp->ave=sum/3.0;
temp++;
}
}
structstuf_max(structstu*temp)
{
structstu*max;
inti;
max=temp;
for(i=0;i<N;i++)
{
if((temp->sum)>(max->sum))
{
max=temp;
}
temp++;
}
return*max;
}
voidf_print(structstus)
{
inti;
printf("thestudentnameis:%s ",s.name);
printf("thestudentnumberis:%s ",s.number);
for(i=0;i<3;i++)
{
printf("thegrade[%d]is:%d ",i+1,s.grade[i]);
}
printf("thesumis:%d ",s.sum);
printf("theaverageis:%f ",s.ave);
}
voidf_print_ave(structstu*temp)
{
inti;
intsum_all=0;
doubleave_all;
for(i=0;i<N;i++)
{
sum_all+=temp->sum;
temp++;
}
ave_all=sum_all/(3.0*N);
printf(" theaverageofallgradesis:%f ",ave_all);
}
我跑过程序了,应该没错的,就是输入学生信息的时候,由于有10位学生,可能输入的信息比较多。先输入姓名,然后是学号,最后是三门课程的成绩。每次输入完成后回车就可以了。可以自己跑一下程序,就看到结果了。
④ 用sql 查询出各个科目中成绩最好的学生的名字
select
姓名
from
(select
*
from
(
select
a.学生编号,a.姓名
b.
学生编号,b.科目,b.分数
from
table1
a
right
join
table2
b
on
b.学生编号=a.学生编号
)c
group
by
c.科目
having
max(c.分数)
)
⑤ 每个学生有不同成绩,sql查询最高成绩的排名
1.每个学生可以是参加了一次或者多次的考试,对吧?
2.你是使用什么数据库?版MySQL?Oracle?SQLServer?
3.若学生中权最高的成绩都是相同的分数,如何排名?是给相同的名次还是依旧随机增序的方式排序?
⑥ 世界上分数最高的学生过得好吗
过得好。。。
⑦ 有4名学生,每个学生包括学号、姓名、成绩,要求找出成绩最高者的姓名和学号
求:① 编写类的定义。
② 编写主函数使用这个类。
****************************/
#include <iostream>
using namespace std;
#define pi 3.1415926
class CCircle
{
public:
double getArea(double radius);
double getGirth(double radius);
private:
double radius;
};
double CCircle::getArea(double radius)
{
return pi * radius * radius;
}
double CCircle::getGirth(double radius)
{
return 2 * pi * radius;
}
int main()
{
CCircle circle;
float radius;
double area,girth;
cout << " 请输入圆半径:" << endl;
cin >> radius;
area = circle.getArea(radius);
girth = circle.getGirth(radius);
cout << "半径\t" << "面积\t" << "周长\t" << endl;
cout << radius << "\t" << area << "\t" << girth << "\t" << endl;
return 0;
}
/**********************************\
7.1、有4名学生,每个学生的数据包括学号、姓名、成绩,要求找出成绩最高者的学号、姓名和成绩,并输出。
要求:① 写出源程序,上机编辑、调试、运行程序
② 从键盘输入测试数据,写出运行结果
\**********************************/
#include <iostream>
#include <string>
using namespace std;
class Cstu
{
public:
void getInf();
void sort(string name[],string num[],float score[]);
private:
string name[4];
string num[4];
float score[4];
};
void Cstu::getInf()
{
cout << "请输入学生的姓名和学号和成绩:" << endl;
cout << "姓名\t" << "学号\t" << "成绩\t" << endl;
for(int i = 0;i < 4;i++)
{
cin >> name[i] >> num[i] >> score[i];
}
}
void Cstu::sort(string name[],string num[],float score[])
{
int n,i;
float temp = 0;
for(i = 0;i < 4;i++)
{
if(score[i] > temp)
{
temp = score[i];
n = i;
}
}
cout << "最高分的信息是;" << endl;
cout << name[i] << "\t" << num[i] << "\t" << score[i] << endl;
}
int main()
{
Cstu stu;
stu.getInf();
stu.sort(stu.name,stu.num,stu.score);
// stu.sort();
getchar();
return 0;
}
呵呵,这个问题想错了。应该是这样定义的:Cstu stu[4]
前面的函数都错了!
⑧ 麦元中学中考学生成绩最高分学生是谁
2009年望江县中考成绩2009年中考成绩已揭晓,全县共8540人参加了初中毕业学业考试,其中最高分742.5分(麦元版中学考生权)、700分以上118人、650分以上894人、600分以上2293人、550分以上3606人、500分以上4829人,450分以上5819人。从成绩分布情况看,今年700分以上学生分布较广,几乎覆盖所有初中,总成绩前10名的考生分别分布在麦元中学、实验学校、鸦滩初中、文凯学校、望江初中、长江学校等学校。
⑨ MySQL查询成绩最高的学生及分数(两张表)
参考sql如下:
⑩ c语言筛选成绩最高学生
//学生信息结构体
structStudentInfo
{
charm_chNo[8];//学号
doublem_dMath;//数学成绩
doublem_dEng;//英语成绩
doublem_dComp;//计算机成绩
doublem_dAve;//平均成绩
};
//计算平均成绩
voidave(StudentInfo&st)
{
st.m_dAve=(st.m_dMath+st.m_dEng+st.m_dComp)/3.0;
}
//寻找最高平均成绩的学生
intfind(StudentInfo*pStudents,intnCount)
{
intnResult=-1;
if(nullptr==pStudents||nCount<1)
returnnResult;
doubledMax=0.0;
for(inti=0;i<nCount;i++)
{
if(pStudents[i].m_dAve>dMax)
{
dMax=pStudents[i].m_dAve;
nResult=i;
}
}
returnnResult;
}
int_tmain(intargc,_TCHAR*argv[])
{
//输入学生总数
intnCount=0;
scanf("%d",&nCount);
if(nCount<1)
return0;
//依次输入学生信息
StudentInfo*pStudents=(StudentInfo*)malloc(sizeof(StudentInfo)*nCount);
for(inti=0;i<nCount;i++)
{
scanf("%s%lf%lf%lf",&(pStudents[i].m_chNo),&(pStudents[i].m_dMath),
&(pStudents[i].m_dEng),&(pStudents[i].m_dComp));
ave(pStudents[i]);
}
//寻找最高平均成绩
intnPos=find(pStudents,nCount);
if(-1==nPos)
return0;
//打印最高平均成绩学生信息
printf("%-8s%-8s%-8s%-8s%-8s ","No","Math.","Eng.","Comp.","Ave.");
printf("%-8s%-8.2f%-8.2f%-8.2f%-8.2f",pStudents[nPos].m_chNo,pStudents[nPos].m_dMath,
pStudents[nPos].m_dEng,pStudents[nPos].m_dComp,pStudents[nPos].m_dAve);
//释放内存
free(pStudents);
system("pause");
return0;
}