本题要求实现一个函数,统计学生学号链表中专业为计算机的学生人数。链表结点定义如下: struct ListNode { char code[8]; struct ListNode *next; }; 这里学生的学号共7位数字,其中第2、3位是专业编号。计算机专业的编号为02。
时间: 2024-03-16 11:48:02 浏览: 66
好的,根据您的要求,我可以编写如下的函数来实现统计计算机专业的学生人数:
```c
int countComputerStudents(struct ListNode *head) {
int count = 0;
struct ListNode *p = head;
while (p != NULL) {
if (p->code[1] == '0' && p->code[2] == '2') { // 判断专业编号是否为02
count++;
}
p = p->next;
}
return count;
}
```
这个函数的参数是一个指向链表头结点的指针,返回值是专业为计算机的学生人数。我们通过遍历链表,对每个结点的专业编号进行判断,如果是计算机专业,则将计数器加1。最后返回计数器的值即可。
相关问题
本题要求实现一个函数,统计学生学号链表中专业为计算机的学生人数。链表结点定义如下:\n\nstruct listnode {\n char code[8];\n struct listnode *
该函数需要遍历整个学生学号链表,对于每个结点,判断其专业是否为计算机,如果是,则计数器加一。最终返回计数器的值即可。
具体实现可以参考以下代码:
int count_computer_students(struct listnode *head) {
int count = ;
struct listnode *p = head;
while (p != NULL) {
if (strcmp(p->major, "计算机") == ) {
count++;
}
p = p->next;
}
return count;
}
其中,head为链表头结点,major为链表结点中存储专业的成员变量。使用while循环遍历链表,对于每个结点,判断其专业是否为计算机,如果是,则计数器加一。最终返回计数器的值即可。
6-2 统计专业人数 分数 15 全屏浏览题目 切换布局 作者 张泳 单位 浙大城市学院 本题要求实现一个函数,统计学生学号链表中专业为计算机的学生人数。链表结点定义如下: struct ListNode { char code[8]; struct ListNode *next; }; 这里学生的学号共7位数字,其中第2、3位是专业编号。计算机专业的编号为02。 函数接口定义: int countcs( struct ListNode *head ); 其中head是用户传入的学生学号链表的头指针;函数countcs统计并返回head链表中专业为计算机的学生人数。 裁判测试程序样例: #include <stdio.h> #include <stdlib.h> #include <string.h> struct ListNode { char code[8]; struct ListNode *next; }; struct ListNode *createlist(); /*裁判实现,细节不表*/ int countcs( struct ListNode *head ); int main() { struct ListNode *head; head = createlist(); printf("%d\n", countcs(head)); return 0; } /* 你的代码将被嵌在这里 */ 输入样例: 1021202 2022310 8102134 1030912 3110203 4021205 # 输出样例: 3 代码长度限制 16 KB 时间限制 400 ms 内存限制
下面是我给出的代码实现:
```c
int countcs(struct ListNode *head) {
int count = 0;
while (head != NULL) {
if (head->code[1] == '0' && head->code[2] == '2') {
count++;
}
head = head->next;
}
return count;
}
```
这个函数的实现很简单,只需要遍历整个链表,对于每个结点,检查它的学号中第2和第3位是否为 "02",如果是的话,累加计数器即可。最后返回计数器的值即可。
阅读全文