【成都信息工程大学】2021-807C语言程序设计

本文介绍了C语言中关于数组和链表的编程问题,包括数组中最大最小元素交换,两个递增有序链表的合并,以及冒泡排序和字符串子串查找的应用。通过程序设计思想和流程图,阐述了如何实现这些功能。
摘要由CSDN通过智能技术生成

一、阐述程序设计思想,画出程序流程图,不需要给出代码

1.设计一个函数fun,其作用为使数组中最大元素项与第一位互换,数组中最小元素项与最后一位以为互换。(使用指针实现)

注:循环处(p++)改为(i++)
请添加图片描述

2.现有两个递增有序链表L1与L2,P1、P2指向两链表头节点。利用两个链表的空间节点及指针P1、P2,构造出两列表合并后的有序递减序列L3。

请添加图片描述

二、阐述程序设计思想,画出主要流程,并给出代码。

1.选择合适的数据结构保存十个工人信息(包括编号、姓名、工龄和工资)。使用冒泡算法将工人按照工龄从大到小排序,并输出排序后的结果。

程序设计思想:建立结构体数组保存工人信息,通过Input()、Sort()、Print()三个函数分别实现输入、排序(由冒泡排序法,对工人的工龄从大到小进行排序)、输出三个功能。

#include <stdio.h>
#define N 4

struct worker
{
   
	char num[7];
	char name[11];
	int year;
	int salary;
};

void Input(struct worker *p);
void Sort(struct worker *p, int n);
void Print(struct worker *p);

int main(void)
{
   
	struct worker work[N];
	int i;

	Input(work);
	Sort(work,N);
	Print(work);
	return 0;
}

void Input(struct worker *p)
{
   
	for ( int i = 0; i < N; i++ )
	{
   
		printf("请输入第%d个工人信息:", i+1);
		scanf("%s%s%d%d", p[i].num, p[i].name, &p[i].year, &p[i].salary);
	}
评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值