根据输入的成绩进行百分制分段,A等为90分以上,B等为80~89分,C等为70~79分,D等为60~69分,E等为60分以下。实现成绩的百分制分段数字由键盘输入。(用switch实现)
时间: 2024-02-25 20:57:50 浏览: 82
好的,以下是代码实现:
```
#include <stdio.h>
int main()
{
int score;
printf("请输入成绩:");
scanf("%d", &score);
switch (score / 10)
{
case 10:
case 9:
printf("你的成绩为A等\n");
break;
case 8:
printf("你的成绩为B等\n");
break;
case 7:
printf("你的成绩为C等\n");
break;
case 6:
printf("你的成绩为D等\n");
break;
default:
printf("你的成绩为E等\n");
break;
}
return 0;
}
```
这个程序通过 `scanf` 函数从键盘读入一个整数 `score`,然后通过 `switch` 语句根据 `score` 的值进行分段。分段的方式是先将 `score` 除以 10,得到一个整数,然后根据这个整数的值来判断属于哪个等级。注意,由于 `switch` 语句中的 `case` 标签只能是常量表达式,因此我们需要用到 C 语言中的整数除法,将 `score` 除以 10 得到一个整数作为 `switch` 语句的判断条件。
相关问题
用C语言将百分制成绩分段
以下是用C语言将百分制成绩分段的示例代码:
```c
#include <stdio.h>
int main() {
int score;
printf("请输入百分制成绩:");
scanf("%d", &score);
if (score >= 90 && score <= 100) {
printf("成绩等级为:A\n");
} else if (score >= 80 && score < 90) {
printf("成绩等级为:B\n");
} else if (score >= 70 && score < 80) {
printf("成绩等级为:C\n");
} else if (score >= 60 && score < 70) {
printf("成绩等级为:D\n");
} else if (score >= 0 && score < 60) {
printf("成绩等级为:E\n");
} else {
printf("输入的成绩无效\n");
}
return 0;
}
```
这段代码首先要求用户输入一个百分制成绩,然后根据成绩的范围进行分段输出对应的等级。如果输入的成绩不在0到100的范围内,则输出"输入的成绩无效"。
1.用循环语句形成fibonacci数列(30位) 2.利用函数+if定义分段函数: 并利用循环结构输出在-3到6,步长为0.5的序列上各点对应的函数值。 3.实现对Excel文件的读写 a)读取默认数据,并删除大于100的数据(自行创建测试数据) b)读取特定工作表的数据 c)读取特定区域的数据 d)保存数据到.xlsx文件 4.分别用if和switch语句实现,将百分制成绩转换为成绩等级A、B、C、D、E。其中90~100分为A,80~89分为B,70~79分为C,60~69分为D,60分以下为E。对超出百分制范围的成绩,给出错误提示信息。 5.编写一个函数求向量x中元素的平均值、最大值、最小值、均方根值。 6.编写一个函数,给出一个向量,生成如下范德蒙矩阵。
1. 用循环语句形成fibonacci数列(30位)
```python
a, b = 0, 1
for i in range(30):
print(a, end=" ")
a, b = b, a + b
```
2. 利用函数+if定义分段函数,并利用循环结构输出在-3到6,步长为0.5的序列上各点对应的函数值。
```python
import math
def f(x):
if x < -2:
return -1
elif x < 0:
return x + 1
elif x < 2:
return math.sqrt(4 - x ** 2)
else:
return 2
for x in range(-6, 12, 1):
x /= 2
print("f({:.1f}) = {:.4f}".format(x, f(x)))
```
3. 实现对Excel文件的读写
```python
import openpyxl
# a) 读取默认数据,并删除大于100的数据(自行创建测试数据)
wb = openpyxl.load_workbook("test.xlsx")
sheet = wb.active
for row in sheet.rows:
for cell in row:
if cell.value and type(cell.value) == float and cell.value > 100:
cell.value = None
# b) 读取特定工作表的数据
sheet = wb["Sheet2"]
for row in sheet.rows:
for cell in row:
print(cell.value, end="\t")
print()
# c) 读取特定区域的数据
sheet = wb.active
for row in sheet["B2:D4"]:
for cell in row:
print(cell.value, end="\t")
print()
# d) 保存数据到.xlsx文件
wb.save("test_updated.xlsx")
```
4. 分别用if和switch语句实现,将百分制成绩转换为成绩等级A、B、C、D、E。其中90~100分为A,80~89分为B,70~79分为C,60~69分为D,60分以下为E。对超出百分制范围的成绩,给出错误提示信息。
```python
score = 75
# if语句实现
if score < 0 or score > 100:
print("成绩输入错误")
elif score >= 90:
print("A")
elif score >= 80:
print("B")
elif score >= 70:
print("C")
elif score >= 60:
print("D")
else:
print("E")
# switch语句实现(Python没有原生switch语句,使用字典模拟)
grade = {
10: "A",
9: "A",
8: "B",
7: "C",
6: "D",
5: "E",
4: "E",
3: "E",
2: "E",
1: "E",
0: "E"
}
if score < 0 or score > 100:
print("成绩输入错误")
else:
level = grade[int(score // 10)]
print(level)
```
5. 编写一个函数求向量x中元素的平均值、最大值、最小值、均方根值。
```python
import math
def vector_stats(x):
n = len(x)
mean = sum(x) / n
max_val = max(x)
min_val = min(x)
rms = math.sqrt(sum([i ** 2 for i in x]) / n)
return mean, max_val, min_val, rms
x = [1, 2, 3, 4, 5]
print(vector_stats(x))
```
6. 编写一个函数,给出一个向量,生成如下范德蒙矩阵。
```python
def vandermonde(x):
n = len(x)
vdm = []
for i in range(n):
row = []
for j in range(n):
row.append(x[i] ** j)
vdm.append(row)
return vdm
x = [1, 2, 3, 4, 5]
vdm = vandermonde(x)
for row in vdm:
print(row)
```
阅读全文