用c语言建立一个数组类ARR,求一个整型数组所有元素中的最大值及该最大值在数组中的序号(从1开始),具体要求如下: (1)私有数据成员: int n : 数组实际元素个数 int a[100] : 存放数组元素 int max, maxindex : 存放整型数组元素中的最大值及最大值的序号 (2)公有成员函数 ARR(int x[ ], int size): 构造函数,用参数size初始化n,用x数组初始化a数组。 void FindMax( ): 求整型数组元素中的最大值及最大值的序号。 void Show( ): 将数组元素以每行5个数的形式输出到屏幕上,同时输出数组中元素的最大值及最大值的序号。 (3)在主函数中完成对该类的测试,定义一个整型数组b[ ]={3,4,6,8,10,34,2}, 定义一个ARR类的对象arr,用b数组及其元素个数初始化该对象,求其最大值及最大值的序号并输出程序的运行结果。 程序运行结果应为: 3 4 6 8 10 34 2 max=34 maxindex=6
时间: 2024-01-21 17:16:14 浏览: 95
以下是代码实现:
```c
#include <stdio.h>
//定义数组类ARR
typedef struct {
int n; //数组实际元素个数
int a[100]; //存放数组元素
int max; //存放整型数组元素中的最大值
int maxindex; //存放整型数组元素中的最大值的序号
} ARR;
//构造函数,用参数size初始化n,用x数组初始化a数组。
void init_arr(ARR *arr, int x[], int size) {
arr->n = size;
for(int i=0; i<size; i++) {
arr->a[i] = x[i];
}
}
//求整型数组元素中的最大值及最大值的序号。
void find_max(ARR *arr) {
arr->max = arr->a[0];
arr->maxindex = 1;
for(int i=1; i<arr->n; i++) {
if(arr->a[i] > arr->max) {
arr->max = arr->a[i];
arr->maxindex = i+1;
}
}
}
//将数组元素以每行5个数的形式输出到屏幕上,同时输出数组中元素的最大值及最大值的序号。
void show_arr(ARR *arr) {
printf("%d\t", arr->a[0]);
for(int i=1; i<arr->n; i++) {
if(i%5 == 0) {
printf("\n");
}
printf("%d\t", arr->a[i]);
}
printf("\nmax=%d\t\tmaxindex=%d", arr->max, arr->maxindex);
}
int main() {
int b[] = {3,4,6,8,10,34,2};
ARR arr;
init_arr(&arr, b, 7);
find_max(&arr);
show_arr(&arr);
return 0;
}
```
输出结果:
```
3 4 6 8 10
34 2
max=34 maxindex=6
```
阅读全文