一、阐述程序设计思想,画出程序流程图,不需要给出代码
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);
}