基于学生300215121的平均成绩输出杨辉三角,若成绩大于60分,则输出前10行,否则输出5行。查询SC中有没有同学选修经济学课程,如果有,统计选修人数,否则显示“本学期没有同学选修经济学课程”。。
时间: 2024-05-16 10:16:18 浏览: 8
很抱歉,作为 AI,我无法直接查询学生的成绩和选修情况。但我可以为您提供一个伪代码示例来实现您的需求:
```
// 假设学生300215121的平均成绩为80分
average_score = 80
// 输出杨辉三角
if average_score > 60:
rows = 10
else:
rows = 5
for i in range(rows):
row = [1]
for j in range(1, i):
row.append(previous_row[j-1] + previous_row[j])
if i != 0:
row.append(1)
previous_row = row
print(row)
// 查询选修经济学课程的同学人数
if "经济学" in SC:
count = len(SC["经济学"])
print("选修经济学课程的同学人数为:" + str(count))
else:
print("本学期没有同学选修经济学课程")
```
请注意,上述代码仅为伪代码示例,需要根据具体情况进行修改和适配。
相关问题
要求使用SQL语言给出代码和结果基于学生300215121的平均成绩输出杨辉三角,若成绩大于60分,则输出前10行,否则输出5行。查询SC中有没有同学选修经济学课程,如果有,统计选修人数,否则显示“本学期没有同学选修经济学课程”。
1. 输出杨辉三角
若成绩大于60分,则输出前10行,否则输出5行。假设学生表名为`students`,课程表名为`courses`,成绩表名为`scores`,成绩的列名为`score`,学生ID的列名为`sid`,课程ID的列名为`cid`。
```sql
-- 输出杨辉三角
WITH RECURSIVE pascal(n, m, val) AS (
SELECT 1, 1, 1
UNION ALL
SELECT n+1, m+1, val*(n+1-m)/m FROM pascal WHERE n < 10
)
SELECT group_concat(val, ' ') FROM pascal GROUP BY n;
```
上述 SQL 代码使用了递归公式计算杨辉三角,并使用了 group_concat 函数将每一行的数字拼接成字符串输出。
根据题意,我们需要判断学生的平均成绩是否大于60分,并输出不同的行数。假设学生的平均成绩可以通过以下 SQL 查询得到:
```sql
SELECT AVG(score) FROM scores WHERE sid = '300215121';
```
结合上述代码,我们可以使用以下 SQL 代码输出杨辉三角:
```sql
WITH RECURSIVE pascal(n, m, val) AS (
SELECT 1, 1, 1
UNION ALL
SELECT n+1, m+1, val*(n+1-m)/m FROM pascal WHERE n < CASE WHEN (SELECT AVG(score) FROM scores WHERE sid = '300215121') > 60 THEN 10 ELSE 5 END
)
SELECT group_concat(val, ' ') FROM pascal GROUP BY n;
```
2. 统计选修经济学课程的人数
假设经济学课程的课程ID为`101`,我们可以使用以下 SQL 代码查询选修经济学课程的人数:
```sql
SELECT COUNT(DISTINCT sid) FROM scores WHERE cid = '101';
```
若选修人数为0,则显示“本学期没有同学选修经济学课程”:
```sql
SELECT
CASE
WHEN COUNT(DISTINCT sid) > 0 THEN COUNT(DISTINCT sid)
ELSE '本学期没有同学选修经济学课程'
END AS num_of_students
FROM scores
WHERE cid = '101';
```
输出杨辉三角形前10行
好的,以下是输出杨辉三角形前10行的 C 语言程序:
```c
#include <stdio.h>
int main() {
int rows = 10, coef = 1;
for (int i = 0; i < rows; i++) {
for (int space = 1; space <= rows - i; space++) {
printf(" ");
}
for (int j = 0; j <= i; j++) {
if (j == 0 || i == 0) {
coef = 1;
} else {
coef = coef * (i - j + 1) / j;
}
printf("%4d", coef);
}
printf("\n");
}
return 0;
}
```
运行该程序即可输出杨辉三角形前10行。
相关推荐
![pdf](https://img-home.csdnimg.cn/images/20210720083512.png)
![pdf](https://img-home.csdnimg.cn/images/20210720083512.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)