C语言实现数据处理功能:排序、插入和动态输入
#include <stdio.h>
#define N 10
void sort(int a[], int n); // 冒泡排序
void insert(int a[], int n, int x); // 插入新数据
void print(int a[], int n); // 输出数组
int main()
{
int a[N];
int n, x;
printf('请输入数据个数(不超过%d):', N);
scanf('%d', &n);
printf('请依次输入%d个整数:\n', n);
for (int i = 0; i < n; i++) {
printf('第%d个数:', i + 1);
scanf('%d', &a[i]);
}
sort(a, n);
printf('排序后的数据:');
print(a, n);
while (1) {
printf('请输入一个新的数据:');
scanf('%d', &x);
if (n == N) {
printf('数据已满,无法插入,程序结束。\n');
break;
}
insert(a, n, x);
n++;
printf('新的数据列表:');
print(a, n);
printf('是否继续插入数据?(Y/N)');
char c;
scanf(' %c', &c);
if (c == 'N' || c == 'n') {
break;
}
}
return 0;
}
void sort(int a[], int n)
{
for (int i = 0; i < n - 1; i++) {
for (int j = 0; j < n - i - 1; j++) {
if (a[j] < a[j + 1]) {
int temp = a[j];
a[j] = a[j + 1];
a[j + 1] = temp;
}
}
}
}
void insert(int a[], int n, int x)
{
int i;
for (i = n - 1; i >= 0; i--) {
if (a[i] < x) {
a[i + 1] = a[i];
} else {
break;
}
}
a[i + 1] = x;
}
void print(int a[], int n)
{
for (int i = 0; i < n; i++) {
printf('%d ', a[i]);
}
printf('\n');
}
原文地址: https://www.cveoy.top/t/topic/l3BG 著作权归作者所有。请勿转载和采集!