1007:动态数组(指针与数组)

使用指针操作动态数组实现特定功能
该程序示例展示了如何根据输入的类型动态创建整数、字符和浮点数数组,然后利用指针进行操作。对于整数数组,计算平均值;对于字符数组,找到最大字母;对于浮点数数组,找出最小值。整个过程不使用数组下标,仅通过指针完成。程序首先读取测试实例数量,然后逐个处理每个实例,最后输出结果。

题目描述
一开始未知数组长度,根据要求创建不同类型的指针,并且使用指针创建相应长度的数组,然后再完成不同的要求

若要求创建整数数组,计算数组内所有数据的平均值

若要求创建字符数组,找出数组内的最大字母

若要求创建浮点数数组,找出数组的最小值

要求程序整个过程不能使用数组下标,从数组创建、输入到搜索、比较、计算,到输出都必须使用指针

提示:使用new关键字

输入
第一行输入t表示有t个测试实例

第二行先输入一个大写字母表示数组类型,I表示整数类型,C表示字符类型,F表示浮点数类型;然后输入n表示数组长度。

第三行输入n个数据

依次输入t个实例

输出
每个根据不同的数组类型输出相应的结果

样例输入
3
C 5
A D E B C
I 6
22 55 77 33 88 55
F 4
3.1 1.9 6.5 4.8
样例输出
E
55
1.9
提示


#include<bits/stdc++.h>
using namespace std;
double average(int *x, int len)

{
double sum = 0;
for (int i = 0; i < len; i++) 
sum += x[i];
return sum/len; 
}
int main(){
	int T;
	cin>>T;
	char typ;
	int  num;
	for(int i=1;i<=T;i++)
	{cin>>typ>>num;
	
		if(typ=='I')
		{
		int *I=new int[num];
		for(int j=0;j<num;j++)
			cin>>I[j];
		cout<<average(I,num)<<endl;}
		else if(typ=='C')
		{
		char *C=new char[num];
		for(int j=0;j<num;j++)
			cin>>C[j];
		sort(C,C+num);
		
		cout<<C[num-1]<<endl;}
		else{
		float *F=new float[num];
		for(int j=0;j<num;j++)
			cin>>F[j];
		sort(F,F+num-1);
		cout<<F[0]<<endl;}
			
	
	}
	
return 0;
}
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

谁的BUG最难改

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值