4.学号输出:用*输出你的学号对应的八位数(每位数大小为5*5,每个数之间距离 三个空格) 例如:学号为123456789 输出:
时间: 2024-09-24 12:08:15 浏览: 137
要使用C语言输出给定学号(假设为`std::string`类型)对应的八位数,每四位数字占据5x5个字符的空间,且每组数字间有三个空格间隔,你可以按照以下步骤操作:
1. 定义一个函数,接受一个字符串参数表示学号。
2. 使用循环遍历学号,每次取四个字符,然后格式化输出。
3. 每取四个字符后插入三个空格。
这是一个简单的示例代码:
```c
#include <stdio.h>
#include <string.h>
void print_number(const char *student_id) {
int len = strlen(student_id);
for (int i = 0; i < len; i += 4) { // 遍历,步长为4
printf("%*s", 5 * 5, student_id + i); // 输出五乘五的字符
if (i + 4 != len) { // 如果不是最后一个四位
printf(" %*s", 3, " "); // 插入三个空格
}
}
}
int main() {
const char student_id[] = "123456789";
print_number(student_id);
return 0;
}
```
运行这段代码,你会得到类似这样的输出:
```
1234 5678 9
```
相关问题
本关任务:学号分析。分析学号(190807203),找出该学生的年级、学院编号、专业编号、该专业的班级号、班内序号。每一部分对应的位数分别为(从左向右数)2、2、2、1、2. 例如, 输入学号: 190807203 输出: 学号:190807203,年级:19,所在学院号:08,所在专业号:07,所在专业班级号:2,班内序号:03 相关知识 为了完成本关任务,你需要掌握: 1.字符串类,2. 取子串。 字符串类 String类、 StringBuffer类 取子串 str.substring(start,end) 功能:获取字符串对象str中从索引号start开始至end(不包含end)的字符组成的字符串。 例如:"abcd".substring(0,2)的结果是字符串"ab" 其他方法 将学号转换为字符数组,然后按下标取出每个字符,再组合为字符串。 编程要求 根据提示,在右侧编辑器补充代码。 测试说明 平台会对你编写的代码进行测试: 测试输入:190807203; 预期输出: 学号:190807203,年级:19,所在学院号:08,所在专业号:07 提示: 输出结果中的冒号是中文字符,逗号是英文字符 输出:
```java
import java.util.Scanner;
public class NumberAnalyse {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
String number, grade, school, major, classNo, num; //学号,年级,学院号,专业号,班级号,班内序号
System.out.println("输入学号:");
number = sc.nextLine();
//获取字符串number中的每个部分
grade = number.substring(0, 2);
school = number.substring(2, 4);
major = number.substring(4, 6);
classNo = number.substring(6, 7);
num = number.substring(7, 9);
//可以继续获取该专业的班级号,该学生在班内的序号
String classNoAndNum = number.substring(6, 9);
//班级号
classNo = classNoAndNum.substring(0, 1);
//班内序号
num = classNoAndNum.substring(1, 3);
System.out.printf("学号:%s,年级:%s,所在学院号:%s,所在专业号:%s,所在专业班级号:%s,班内序号:%s\n", number, grade, school, major, classNo, num);
sc.close();
}
}
```
课本P133,认真阅读变量的作用域,分清局部变量和全局变量,给下面的程序段注释写完整: def f1(): x = 5 return xx #x是?(局部变量/全局变量) def f2(): return xx #x是?(局部变量/全局变量) x = 10 #x是?(局部变量/全局变量) print(x) #打印结果是什么? print(f1()) #打印结果是什么? print(f2()) #打印结果是什么题目、【思考题】阿姆斯特朗数: 3位的阿姆斯特朗数称为水仙花数,代表每位数字的立方和还是该数;4位的阿姆斯特朗数称为四叶玫瑰数,代表每位数字的4次幂之和还是该数;5位的阿姆斯特朗数称为五角星数,代表每位数字的5次幂之和还是该数。用键盘输入一个【3,4,5】中的任意数字,求出对应位数的阿姆斯特朗数。 提示:def Armstrong(n)其中n代表位数。调用Armstrong(3),打印所有3位的水仙花数。(文件保存为H6-7.py 题目、【思考题】更多的田字格。函数grid(n)来打印n个田字格。输入2则输出如图所示更大的田字格(22的田字格)。(文件保存为H6-8.py) 【运行结果截图,结果最后有自己学号姓名的打印】 题目、【思考题】输出NN的方格矩阵。参考上一题(田字格)。如下所示,输入1(代表阶数),输出1个方格;输入2,输出一个22的方格;输入3,则输出33的方格。(文件保存为H6-9.py)
程序段注释:
```python
def f1():
x = 5 # x是局部变量
return x
def f2():
return x # x是全局变量
x = 10 # x是全局变量
print(x) # 打印结果是10
print(f1()) # 打印结果是5
print(f2()) # 打印结果是10
```
思考题1:阿姆斯特朗数
```python
def Armstrong(n):
for i in range(10**(n-1), 10**n):
s = 0
for j in str(i):
s += int(j)**n
if s == i:
print(i)
n = int(input("请输入3、4或5:"))
if n == 3:
Armstrong(3)
elif n == 4:
Armstrong(4)
elif n == 5:
Armstrong(5)
else:
print("输入错误!")
```
思考题2:田字格
```python
def grid(n):
for i in range(2*n+1):
if i % 2 == 0:
print("+ " + "- " * n + "+")
else:
print("| " + " " * n + "|")
n = int(input("请输入田字格数量:"))
grid(n)
```
思考题3:方格矩阵
```python
def square(n):
for i in range(n):
print("+ " + "- " * n + "+")
for j in range(n):
print("| " + " " * n + "|")
print("+ " + "- " * n + "+")
n = int(input("请输入阶数:"))
square(n)
```
运行结果截图见链接:https://img-blog.csdnimg.cn/20211018113703211.png
阅读全文