c - 如何仅显示列表中的前 10 个输入?
问题描述
我在结构列表中插入了一些细节,每个四个代表一个包含源、目标、生成时间和卷号的数据包?这是我的显示函数,在 main() 中我只调用她:display(); 在主代码的末尾。如何仅显示列表中的前 10 个数据包(四个),这些数据包是我之前使用下面的插入功能插入的?
struct Packet{
int rollnumber;
int src;
int dest;
double gentime;
struct Packet *next;
}* head;
void display(){
struct Packet * temp = head;
while(temp!=NULL){
printf("Roll Number: %d\n",temp->rollnumber);
printf("src: %d\n", temp->src);
printf("dest: %d\n", temp->dest);
printf("gentime: %0.1f\n\n", temp->gentime);
temp = temp->next;
}
}
void insert(int rollnumber, int src, int dest, double gentime){
struct Packet * packet = (struct Packet *) malloc(sizeof(struct Packet));
packet->rollnumber = rollnumber;
packet->src=src;
packet->dest=dest;
packet->gentime = gentime;
packet->next = NULL;
if(head==NULL){
head = packet;
}
else{
packet->next = head;
head = packet;
}
}
解决方案
以如下方式编写函数display
示例
void display( size_t n )
{
if ( n == 0 ) n = ( size_t )-1;
for ( struct Packet * temp = head; n-- && temp != NULL; temp = temp->next )
{
printf("Roll Number: %d\n",temp->rollnumber);
printf("src: %d\n", temp->src);
printf("dest: %d\n", temp->dest);
printf("gentime: %0.1f\n\n", temp->gentime);
}
}
并调用该函数,例如
display( 10 );
当使用参数 equal 调用该函数时,0
该函数将输出整个列表。
推荐阅读
- javascript - 当用户在表单上输入电话号码时,为电话号码添加动态 +1
- git - 为什么 git log 找不到指定为“--”的路径。
- javascript - 如何将悬停颜色添加到具有线性渐变边框的 div?
- android-emulator - 带有 vnc 服务器的无头仿真器
- javascript - 我需要提取字符串中数字的前 6 位和后 4 位,并使用正则表达式删除相同的前导零
- json - powershell json打印父母和孩子
- django - 更新现有模型的 FieldField
- django - Django inineformset 保存和删除
- asp.net-core - 如何在 AddFacebook AspNetCore 身份验证方案上正确设置 auth_type 参数?
- android - 无法访问动态功能模块的资源