实验内容:数组的赋值与输出;数组的转置;数组数据的排序,求数组的最大、最小值;计算数组行、列的值(如求和、求平均等);多维数组间的加、减、乘、除运算等。实验要求: 1.综.2.确定程序设计主要功能模块, 功能模块可以从上面的实验内容中选择6~8个模块,要求一个以上模块用指针。3.使用菜单形式选择各功能模块,每个功能为一个函数。主程序为void main( ){ char ch; abc: printf(“ ********数组应用系统*********\n"); printf(“ 1. 统计数组的正,负,零的个数\n"); printf(“ 2. 数组的排序\n"); printf(“ 3. 二维数组的转置\n"); printf(“ 4. 求数组最大值与平均值\n"); printf(“ 5. 字符数组的统计 \n"); printf(" 6. 退 出 系 统\n"); printf(" ******请输入编号选择功能********\n"); ch=getchar(); switch(ch) { case '1': sztj(); break; case '2': szpx();break; : : case '6': goto end; } getchar(); goto abc; end: ; }
时间: 2024-01-17 21:17:38 浏览: 70
数值分析的一些实验程序
以下是一个可能的实验代码,包括了6个功能模块:
```
#include <stdio.h>
#define MAX_SIZE 100
// 统计数组的正、负、零的个数
void count(int arr[], int size) {
int positive = 0, negative = 0, zero = 0;
for (int i = 0; i < size; i++) {
if (arr[i] > 0) {
positive++;
} else if (arr[i] < 0) {
negative++;
} else {
zero++;
}
}
printf("正数:%d,负数:%d,零:%d\n", positive, negative, zero);
}
// 数组排序
void sort(int arr[], int size) {
for (int i = 0; i < size - 1; i++) {
for (int j = i + 1; j < size; j++) {
if (arr[i] > arr[j]) {
int temp = arr[i];
arr[i] = arr[j];
arr[j] = temp;
}
}
}
printf("排序后的数组为:\n");
for (int i = 0; i < size; i++) {
printf("%d ", arr[i]);
}
printf("\n");
}
// 二维数组转置
void transpose(int arr[][MAX_SIZE], int row, int col) {
int temp;
for (int i = 0; i < row; i++) {
for (int j = i + 1; j < col; j++) {
temp = arr[i][j];
arr[i][j] = arr[j][i];
arr[j][i] = temp;
}
}
printf("转置后的数组为:\n");
for (int i = 0; i < row; i++) {
for (int j = 0; j < col; j++) {
printf("%d ", arr[i][j]);
}
printf("\n");
}
}
// 求数组最大值和平均值
void max_average(int arr[], int size) {
int max = arr[0], sum = arr[0];
for (int i = 1; i < size; i++) {
if (arr[i] > max) {
max = arr[i];
}
sum += arr[i];
}
double average = (double)sum / size;
printf("最大值:%d,平均值:%.2f\n", max, average);
}
// 字符数组统计
void count_char(char str[]) {
int alpha = 0, digit = 0, space = 0, other = 0;
for (int i = 0; str[i] != '\0'; i++) {
if ((str[i] >= 'a' && str[i] <= 'z') || (str[i] >= 'A' && str[i] <= 'Z')) {
alpha++;
} else if (str[i] >= '0' && str[i] <= '9') {
digit++;
} else if (str[i] == ' ') {
space++;
} else {
other++;
}
}
printf("字母:%d,数字:%d,空格:%d,其他:%d\n", alpha, digit, space, other);
}
// 多维数组加法
void add(int arr1[][MAX_SIZE], int arr2[][MAX_SIZE], int row, int col) {
int result[MAX_SIZE][MAX_SIZE];
for (int i = 0; i < row; i++) {
for (int j = 0; j < col; j++) {
result[i][j] = arr1[i][j] + arr2[i][j];
}
}
printf("两个数组相加的结果为:\n");
for (int i = 0; i < row; i++) {
for (int j = 0; j < col; j++) {
printf("%d ", result[i][j]);
}
printf("\n");
}
}
int main() {
int arr[MAX_SIZE], size, row, col;
char str[MAX_SIZE];
int arr1[MAX_SIZE][MAX_SIZE], arr2[MAX_SIZE][MAX_SIZE];
char ch;
while (1) {
printf("********数组应用系统*********\n");
printf(" 1. 统计数组的正、负、零的个数\n");
printf(" 2. 数组的排序\n");
printf(" 3. 二维数组的转置\n");
printf(" 4. 求数组最大值和平均值\n");
printf(" 5. 字符数组的统计\n");
printf(" 6. 多维数组相加\n");
printf(" 7. 退出系统\n");
printf("******请输入编号选择功能********\n");
ch = getchar();
switch (ch) {
case '1':
printf("请输入数组大小:");
scanf("%d", &size);
printf("请输入数组元素:");
for (int i = 0; i < size; i++) {
scanf("%d", &arr[i]);
}
count(arr, size);
break;
case '2':
printf("请输入数组大小:");
scanf("%d", &size);
printf("请输入数组元素:");
for (int i = 0; i < size; i++) {
scanf("%d", &arr[i]);
}
sort(arr, size);
break;
case '3':
printf("请输入二维数组的行和列:");
scanf("%d%d", &row, &col);
printf("请输入数组元素:");
for (int i = 0; i < row; i++) {
for (int j = 0; j < col; j++) {
scanf("%d", &arr1[i][j]);
}
}
transpose(arr1, row, col);
break;
case '4':
printf("请输入数组大小:");
scanf("%d", &size);
printf("请输入数组元素:");
for (int i = 0; i < size; i++) {
scanf("%d", &arr[i]);
}
max_average(arr, size);
break;
case '5':
printf("请输入字符串:");
scanf("%s", str);
count_char(str);
break;
case '6':
printf("请输入两个二维数组的行和列:");
scanf("%d%d", &row, &col);
printf("请输入数组1的元素:");
for (int i = 0; i < row; i++) {
for (int j = 0; j < col; j++) {
scanf("%d", &arr1[i][j]);
}
}
printf("请输入数组2的元素:");
for (int i = 0; i < row; i++) {
for (int j = 0; j < col; j++) {
scanf("%d", &arr2[i][j]);
}
}
add(arr1, arr2, row, col);
break;
case '7':
return 0;
default:
printf("输入错误,请重新输入!\n");
break;
}
getchar();
}
}
```
阅读全文