1004–最受欢迎的气球
- 关于new和delete的格式!!!!
数组
int *a = new int [5];//不能赋初值
delete [ ] a;//[ ]很重要
单独的一个数据
int *a = new int; //没有初始值
int *b = new int(10); //有初始值,注意用小括号
delete a;
delete b;
- 输出数量最多的气球颜色,比较的是气球个数(数组中的数据),修改的是下标(maxindex)
————AC代码————
#include <iostream>
#include <string>
using namespace std;
int main() {
int N;
while (cin >> N && N != 0) {
string *col = new string[N];//new一个表示颜色的字符串数组
//new出来返回的是一个指针
int *num = new int[N];
//输入n个气球颜色
for (int i = 0; i < N; i++) {
cin >> col[i];
num[i] = 1;
}
//记录每一个气球对应颜色出现的频率
for (int i = 0; i < N; i++) {
for (int j = i + 1; j < N; j++) { //如果前边已经出现过,后边记录时减少开销
if (col[i] == col[j]) {
num[i]++;
}
}
}
//最大值
int maxindex = 0;
for (int i = 0; i < N; i++) {
if (num[maxindex] < num[i]) {
maxindex = i;
}
}
cout << col[maxindex] << endl;
delete []col;//我这辈子都记住这个格式了!!!!!!
delete []num;//一对方括号表示对数组空间的操作
}
return 0;
}
博客介绍了如何使用C++解决杭电在线评测系统中的1004题,主要涉及new和delete操作,以及处理数组数据来找出数量最多的气球颜色。代码实现已通过验证。

686

被折叠的 条评论
为什么被折叠?



