数组的赋值与输出,数组的转置,数组数据的排序,求数组的最大值和最小值,计算数组的平均值,计算数组的和使用C语言编辑一个程序实现上述功能
时间: 2024-03-09 20:51:10 浏览: 72
好的,我会为您编写一个C语言程序,可以实现数组的赋值与输出,数组的转置,数组数据的排序,求数组的最大值和最小值,计算数组的平均值,计算数组的和等功能。以下是程序代码:
```c
#include <stdio.h>
#define ROWS 3 // 数组行数
#define COLS 4 // 数组列数
void print_array(int arr[][COLS], int rows); // 打印数组
void transpose(int arr[][COLS], int rows); // 数组转置
void sort(int arr[][COLS], int rows); // 数组排序
int max(int arr[][COLS], int rows); // 数组最大值
int min(int arr[][COLS], int rows); // 数组最小值
double average(int arr[][COLS], int rows); // 数组平均值
int sum(int arr[][COLS], int rows); // 数组总和
int main(void) {
int arr[ROWS][COLS];
int i, j;
// 数组赋值
for (i = 0; i < ROWS; i++) {
for (j = 0; j < COLS; j++) {
printf("请输入第%d行第%d列的数:", i + 1, j + 1);
scanf("%d", &arr[i][j]);
}
}
// 打印原数组
printf("\n原数组:\n");
print_array(arr, ROWS);
// 数组转置
printf("\n数组转置后:\n");
transpose(arr, ROWS);
print_array(arr, COLS);
// 数组排序
printf("\n数组排序后:\n");
sort(arr, ROWS);
print_array(arr, ROWS);
// 求数组最大值和最小值
printf("\n数组最大值:%d\n", max(arr, ROWS));
printf("数组最小值:%d\n", min(arr, ROWS));
// 计算数组平均值和总和
printf("\n数组平均值:%.2f\n", average(arr, ROWS));
printf("数组总和:%d\n", sum(arr, ROWS));
return 0;
}
// 打印数组
void print_array(int arr[][COLS], int rows) {
int i, j;
for (i = 0; i < rows; i++) {
for (j = 0; j < COLS; j++) {
printf("%3d ", arr[i][j]);
}
printf("\n");
}
}
// 数组转置
void transpose(int arr[][COLS], int rows) {
int i, j, temp;
for (i = 0; i < rows; i++) {
for (j = i + 1; j < COLS; j++) {
temp = arr[i][j];
arr[i][j] = arr[j][i];
arr[j][i] = temp;
}
}
}
// 数组排序
void sort(int arr[][COLS], int rows) {
int i, j, k, temp;
for (k = 0; k < rows; k++) {
for (i = 0; i < COLS - 1; i++) {
for (j = i + 1; j < COLS; j++) {
if (arr[k][i] > arr[k][j]) {
temp = arr[k][i];
arr[k][i] = arr[k][j];
arr[k][j] = temp;
}
}
}
}
}
// 数组最大值
int max(int arr[][COLS], int rows) {
int i, j, max = arr[0][0];
for (i = 0; i < rows; i++) {
for (j = 0; j < COLS; j++) {
if (arr[i][j] > max) {
max = arr[i][j];
}
}
}
return max;
}
// 数组最小值
int min(int arr[][COLS], int rows) {
int i, j, min = arr[0][0];
for (i = 0; i < rows; i++) {
for (j = 0; j < COLS; j++) {
if (arr[i][j] < min) {
min = arr[i][j];
}
}
}
return min;
}
// 数组平均值
double average(int arr[][COLS], int rows) {
int i, j, count = rows * COLS;
double sum = 0;
for (i = 0; i < rows; i++) {
for (j = 0; j < COLS; j++) {
sum += arr[i][j];
}
}
return sum / count;
}
// 数组总和
int sum(int arr[][COLS], int rows) {
int i, j, sum = 0;
for (i = 0; i < rows; i++) {
for (j = 0; j < COLS; j++) {
sum += arr[i][j];
}
}
return sum;
}
```
在程序运行时,您可以根据提示输入数组元素,程序会依次输出原数组、转置后的数组、排序后的数组、最大值、最小值、平均值和总和。
阅读全文