#include<stdio.h>
#define MaxSize 100
int a[MaxSize];
int n;
int Max;//保存最大值
int Lmax;//保存最大值下标
void traverse(int n) {//遍历
int i;
for (i = 0; i < n; i++)
printf("%d ", a[i]);
}
void creat(int n) {//创建一个线性表
int i;
printf("输入元素:\n");
for (i = 0; i < n; i++) {
scanf_s("%d", &a[i]);
}
}
void inverd(int n) {//倒置
int b;
int i, j;
for (i = 0, j = n - 1; i < n / 2; i++, j--) {
b = a[i];
a[i] = a[j];
a[j] = b;
}
}
void deletelist(int Lmax) {//删除最大值
int i;
for (i = Lmax; i < n-1; i++)
a[i] = a[i + 1];
n--;
}
void locate(int min, int max) {//插入
int i;
for (i = n - 1; i!= min; i--)
a[i + 1] = a[i];
a[i+1] = max;
n++;
}
int min() {//返回最小值下标
int i,Lmin=0,min=a[0];
for (i = 0; i < n; i++)
if (min > a[i]) {
min = a[i];
Lmin = i;
}
return(Lmin);
}
int max() {//返回最大值下标
int i, Lmax;
Max = 0;
for (i = 0; i < n; i++)
if (Max < a[i]) {
Max = a[i];
Lmax = i;
}
return(Lmax);
}
int main() {
printf("输入线性表长度:");
scanf_s("%d", &n);
creat(n);//创建
inverd(n);//倒置
printf("倒置后:");
traverse(n);//遍历
inverd(n);//倒置回来
deletelist(max());//删除最大值
locate(min(), Max);//将最大值插入到最小值后面
printf("\n");
printf("处理后:");
traverse(n);//遍历
}
实现n个整数类型数据的顺序表的逆置并实现找出n个整数类型数据的顺序表中的最大数和最小数,然后将最大数放到最小数后面。
最新推荐文章于 2022-12-31 19:57:01 发布