题目描述
依次给你n个学生的姓名、学号,然后Q次询问,对于每一次询问你会得到一个学号,请你输出该学号对应的姓名。
输入
第一行输入一个整数n(1<=n<=100),然后n行,每行输入一个长度不超过15的字符串s,表示姓名和一个10位整数,表示学号。(学号保证没有前导零且每个学号都不相同) 再输入一个整数Q(0<=Q<=10),紧接着Q次询问,每次询问输入一个10位整数,表示询问的学号。(保证询问的学号存在)
输出
对于每一次询问输出与学号对应的姓名。
样例
输入 Copy 5 Anoyer 1000000000 LZH 1314521520 ZZ 9876543210 zhangfei 1234567890 ayi 5432198760 2 1314521520 1000000000
输出 Copy LZH Anoyer
来源/分类
结构体
题解
以下是一个基本的 C 语言程序,用于实现所描述的功能:
#define MAX_N 100
#define ID_LENGTH 11
/* 定义学生结构体 */
struct student {
char name[16];
char id[ID_LENGTH];
};
int main() {
int n, q, i, j;
struct student students[MAX_N];
/* 读入学生信息 */
程序首先定义了一个结构体 student,表示一个学生的信息。该结构体包含两个成员变量:name 表示学生姓名,类型为字符数组,长度为 16;id 表示学生学号,类型为字符数组,长度为 11。
然后程序读入了一个整数 n,表示学生数量。接下来的 n 行每行输入一个字符串 s,即学生姓名和学号,其中姓名和学号用一个空格分隔。程序将读入的学生信息存储在一个长度为 n 的结构体数组 students 中。
接着程序读入一个整数 q,表示查询请求的数量。程序使用一个循环处理每个查询请求:首先读入一个字符串 query,表示要查询的学号;然后在学生列表中查找该学号对应的姓名,并输出结果。如果在列表中没有找到对应的学号,则程序不会输出任何内容。
注意,在本程序中,我们使用了 C 语言标准库中的 strcmp 函数来比较两个字符串是否相等。该函数返回值为 0 表示两个字符串相等。
问题描述
本题C链表结构体定义如下 struct lis{ int v; struct lis* next; }; typedef struct lis* Lis; 要求实现函数 int sum(Lis head)//返回以head为头指针(本身不存值)的链表各个结点值的和输入 一个数n,代表链表的长度 接下来n个数ai,代表每个节点的内容
n与ai范围[1,100]
输出
一行和
样例
样例输入 Copy 3 1 2 3 样例输出 Copy 6
下面是一个实现题目要求的 C 语言函数 sum 的代码:
该函数计算以参数 head 所指向的链表头结点为头节点的链表中各个结点值的和,并将结果作为返回值返回。其中,参数 head 是一个指向链表头节点的指针,链表的每个节点由结构体 lis 表示,其中 v 成员变量存储该节点的值,next 成员变量存储指向下一个节点的指针。
在代码中,我们首先将变量 sum 初始化为 0,然后从链表的第二个节点开始遍历整个链表。遍历过程中,对于每个节点,我们将其值加到 sum 中,然后继续遍历下一个节点。当遍历到链表尾部时,我们退出循环并返回 sum。
需要注意的是,在链表中,头结点本身不存储任何实际数据,仅用于标记链表的起始位置。因此,我们在遍历链表时应从头结点的 next 指针所指向的节点开始遍历。
问题描述
本题C链表结构体定义如下 struct lis{ int v; struct lis* next; }; typedef struct lis* Lis; 要求实现函数 int sum(Lis head)//返回以head为头指针(本身不存值)的链表各个结点值的和输入 一个数n,代表链表的长度 接下来n个数ai,代表每个节点的内容
n与ai范围[1,100]
输出
一行和
样例
样例输入 Copy 3 1 2 3 样例输出 Copy 6
下面是一个实现题目要求的 C 语言函数 sum 的代码:
该函数计算以参数 head 所指向的链表头结点为头节点的链表中各个结点值的和,并将结果作为返回值返回。其中,参数 head 是一个指向链表头节点的指针,链表的每个节点由结构体 lis 表示,其中 v 成员变量存储该节点的值,next 成员变量存储指向下一个节点的指针。
在代码中,我们首先将变量 sum 初始化为 0,然后从链表的第二个节点开始遍历整个链表。遍历过程中,对于每个节点,我们将其值加到 sum 中,然后继续遍历下一个节点。当遍历到链表尾部时,我们退出循环并返回 sum。
需要注意的是,在链表中,头结点本身不存储任何实际数据,仅用于标记链表的起始位置。因此,我们在遍历链表时应从头结点的 next 指针所指向的节点开始遍历。