用c语言编写一个结构体数应用的小程序
时间: 2024-05-11 17:20:25 浏览: 4
好的,下面是一个简单的结构体数应用的小程序,可以进行输入、输出、排序等操作:
```c
#include <stdio.h>
#include <stdlib.h>
#define MAX_NUM 10
struct number {
int value;
int frequency;
};
void input_numbers(struct number num[], int *n);
void output_numbers(struct number num[], int n);
void sort_numbers(struct number num[], int n);
int main() {
struct number num[MAX_NUM];
int n;
input_numbers(num, &n);
output_numbers(num, n);
sort_numbers(num, n);
output_numbers(num, n);
return 0;
}
void input_numbers(struct number num[], int *n) {
printf("Enter the number of elements: ");
scanf("%d", n);
printf("Enter %d elements:\n", *n);
for (int i = 0; i < *n; i++) {
scanf("%d", &num[i].value);
num[i].frequency = 1;
}
}
void output_numbers(struct number num[], int n) {
printf("Number\tFrequency\n");
for (int i = 0; i < n; i++) {
printf("%d\t%d\n", num[i].value, num[i].frequency);
}
}
void sort_numbers(struct number num[], int n) {
int i, j;
struct number temp;
for (i = 0; i < n; i++) {
for (j = i + 1; j < n; j++) {
if (num[i].value > num[j].value) {
temp = num[i];
num[i] = num[j];
num[j] = temp;
} else if (num[i].value == num[j].value) {
num[i].frequency++;
for (int k = j; k < n - 1; k++) {
num[k] = num[k + 1];
}
n--;
j--;
}
}
}
}
```
这个程序定义了一个结构体 `number`,包含两个成员:`value` 表示数值,`frequency` 表示出现的次数。程序中使用结构体数组存储输入的数,并且对数进行了去重和排序的操作。