檢索出各個學生的平均成績
A. 用指針輸入3個學生4門課成績,計算總平均分,並查找一門以上課程不及格的學生, 輸出其各門課成績。
錯誤在於你沒有分清指向二維數組元素的指針和指向二維數組行指針的用法區別。另外你的scanf函數的寫法也不正確。正確程序如下:
#include"stdio.h"
void aver(float *p,int n)
{
float *pe=p+n,aver=0,sum=0;
for(;p<pe;p++)sum=sum+*p;
aver=sum/n;
printf("aver=%5.2f\n",aver);
}
void fun(float (*p)[4],int n)
{ {int i,j;
printf("the score<60 are:\n");
for(i=0;i<3;i++)
for(j=0;j<n;j++)
if(*(*(p+i)+j)<60)
printf("%6.1f\n",*(*(p+i)+j));
}
}
void main()
{
float score[3][4];
int i,j,k,n;
printf("please input student data:\n");
for(i=0;i<3;i++)
for(j=0;j<4;j++)
scanf("%f",&score[i][j]);
aver(score[0],12);
fun(score,4);
}
B. SQL語句 查找一個班級最高平均分學生的學號
----試試看看
with class_avg as
(select 班級號,學號,avg(分數)內as 平均分 from 學生表 A,成績容表 B where A.學號=B.學號 group by 班級,學號)
max_avg as
(select 班級號,max(平均分)from class_avg group by 班級號)
sel_max_avg as
(select 學號 from class_avg C,max_avg D where C.班級號=D.班級號 and C.平均分=D.平均分)
C. sql語句檢索平均分在七十五分以上的學生名字和均分
select 學生名字,avg(分數) from 成績表 group by 學生名字 having avg(分數)>75
D. 用sql檢索有三名以上學生學習的課程號及其平均分數
SELECT 課程,avg(成績) from table group by 課程 having count(*)>3;
我假設每個學生一行。
E. sql如何檢索平均成績最低的學生(第9題)
不知道你是什麼資料庫 給你提供informix的sql, 就是給你個思路,自己改下
create procere low_score()
return varchar(20);
define v_sname varchar(20);
--建立平均成版績臨時表
select t2.sname,avg(t1.score) as avg_score
from 選課 t1
left join 學生 t2
on t1.sno = t2.sno --學號權
group by t2.sname
into temp tmp_avg_score;
--查詢平均成績最低的學生姓名
select sname into v_sname
from tmp_avg_score
where avg_score = (select min(avg_score) from tmp_avg_score);
return v_sname;
end procere;
F. 創建一個查詢,查找學生的成績信息,並顯示為"學號"、"姓名"和"平均成績"3列內容,其中"平均成績"一列數據
select 學號,姓名,avg(成績) 平均成績 from tStud,tScore where tStud.學號=tScore.學號
如果你給出的欄位名和表名都沒錯的話,專上面查詢肯定好使。結屬果將分為學號、姓名、平均成績三列欄位的一張表。
另外,記得查詢的時候里邊的符號如逗號、單引號、小圓點等都是英文符號,如果是中文符號肯定就出錯。
希望以上回答能夠幫助您。
G. 查找成績低於所有課程平均分的學生信息,請問我的條件<(select avg(成績)from 表名)
1、第一題,是查詢總和,總和在SQL中使用sum,如: sum(成績) from 表名
2、第二題,查詢平均值,SQl:select 學號,Avg(sum(成績)) from 表名 group by 學號
3、第三題,查詢每課程學生人數,SQL : select 課程名稱,count(學號) from 表名 group by 課程名稱
4、第四題,查詢最高分,也就是最大值,select max(成績),學號 from 表名 group by 學號
5、第五題,查詢每科的最高分,SQL:select max(成績),課程 from 表名 group by 課程 最低分 select min(成績),課程 from 表名 group by 課程 平均分 select Avg(sum(成績)),課程 from 表名 group by 課程
6、第六題 顯示綜合大於250分的信息 SQL: select 學生ID,sum(成績) 總分 from 表名 where sum(成績)>250 group by 學生ID
7、第七題 顯示平均分 SQL:select 學生ID,Avg(sum(成績)),課名 from 表名 where sum(成績)>250 group by 學生ID,課名 order by Avg(sum(成績)) asc
8、第八題 查詢人數 SQL:select 課程ID,sum(學生ID) from 表名 where sum(學生ID)>=30 group by 課程ID
9、第九題 查詢最高分 SQL:select max(成績),課程,學生名字 from 表名 where max(成績)>=90 group by 課程,學生名字
10、第十題 成績>=60,平均分>85 SQL:select 學生 from 表名 where avg(sum(成績))>85 and min(成績)>=60 order by avg(sum(成績)) desc
H. 用SQL語言「檢索平均成績大於75分的學生名和所在系」 「查詢學生的分數和沒有學生選修的課程」
SELECT Customer FROM Orders
WHERE OrderPrice>(SELECT AVG(OrderPrice) FROM Orders)
用這個套
I. 求解: sql 資料庫 檢索各科成績均大於等於該科平均成績的學生的學號和姓名
CREATE TABLE #學生表(
學生號 INT,
姓名 VARCHAR(10),
性別 VARCHAR(2),
年齡 INT
);
CREATE TABLE #課程表 (
課程號 INT,
課程名 VARCHAR(10)
);
CREATE TABLE #成績表(
學生號 INT,
課程號 INT,
成績 INT
);
INSERT INTO #學生表
SELECT 1, '張三', '男', 16 UNION ALL
SELECT 2, '李四', '男', 17 UNION ALL
SELECT 3, '王五', '女', 16 UNION ALL
SELECT 4, '趙六', '女', 17 UNION ALL
SELECT 5, '田七', '女', 18
;
INSERT INTO #課程表
SELECT 1, '語文' UNION ALL
SELECT 2, '數學' UNION ALL
SELECT 3, '外語'
;
-- 張三全部 超過平均。
-- 李四全部 低於平均。
-- 王五 趙六 部分高於,部分低於
-- 田七 少考一門,其它超過平均
INSERT INTO #成績表
SELECT 1, 1, 85 UNION ALL
SELECT 1, 2, 85 UNION ALL
SELECT 1, 3, 85 UNION ALL
SELECT 2, 1, 75 UNION ALL
SELECT 2, 2, 75 UNION ALL
SELECT 2, 3, 75 UNION ALL
SELECT 3, 1, 85 UNION ALL
SELECT 3, 2, 75 UNION ALL
SELECT 3, 3, 85 UNION ALL
SELECT 4, 1, 75 UNION ALL
SELECT 4, 2, 85 UNION ALL
SELECT 4, 3, 75 UNION ALL
SELECT 5, 1, 83 UNION ALL
SELECT 5, 2, 83
;
SELECT
#學生表.學生號,
#學生表.姓名
FROM
#學生表
WHERE
NOT EXISTS(
SELECT
1
FROM
(
SELECT
課程號,
AVG(成績) AS 平均成績
FROM
#成績表 a
GROUP BY
課程號
) AS 平均成績表
LEFT JOIN #成績表
ON (平均成績表.課程號 = #成績表.課程號
AND 平均成績表.平均成績 < #成績表.成績
AND #成績表.學生號 = #學生表.學生號)
WHERE
學生號 IS NULL
);
學生號 姓名
----------- ----------
1 張三
(1 行受影響)
J. 5位學生的4門成績,輸入任意一名學生姓名可以查找其成績並輸出各門課成績和平均成績
#include<stdio.h>
#include<string.h>
typedef struct
{
char name[10];
int chaengjie1,chengjie2,chengjie3,chengjie4;
double aver;
}L;
int main()
{
L student[5];
int i;
char name[10];
for(i=0;i<5;i++)
{
scanf("%s",student[i].name);//輸入姓名
student[i].chaengjie1=i+1;
student[i].chengjie2=i+2;
student[i].chengjie3=i+3;
student[i].chengjie4=i+4;
student[i].aver=(student[i].chaengjie1+
student[i].chengjie2+student[i].chengjie3+student[i].chengjie4)/5.0;
}
scanf("%s",name); //輸入要查詢的姓名
for(i=0;i<5;i++)
{
if(strcmp(name,student[i].name)==0)
{
printf("%s\n",student[i].name);
printf("各科成績 %d %d %d %d\n",student[i].chaengjie1,student[i].chengjie2,student[i].chengjie3,student[i].chengjie4);
printf("平均成績 %.2f\n",student[i].aver);
}
}
}