求解
我写的有问题
就是答案不对
要求用数组
#include
using namespace std;
char a[1000005];
int main()
{
char x;
char min=CHAR_MIN;
int zx,cnt=0;
while(cin>>x)
{
if(x=='*')
{
break;
}
a[x]++;
cnt++;
}
for(int i=cnt;i>=1;i--)
{
if(a[i]break;
}
}
cout<return 0;
}
谢谢
#include<bits/stdc++.h>
using namespace std;
int a[1000005];
int main()
{
char x;
int min=INT_MAX;
int zx,cnt=0;
while(cin>>x)
{
if(x=='*')
{
break;
}
a[x]++;
cnt++;
}
for(int i=cnt;i>=1;i--)
{
if(a[i]<min)
{
zx=a[i];
break;
}
}
cout<<zx;
return 0;
}
本人为刚入坑的小白,不喜勿喷
该回答引用GPTᴼᴾᴱᴺᴬᴵ
根据题目描述,需要统计输入的字符中每个字符出现的次数,并且输出出现次数最小的字符出现的次数。
下面是使用数组进行实现的示例代码:
#include <iostream>
#include <cstring>
using namespace std;
const int MAXN = 256; // 字符的种类数,ASCII码共有256个字符
int main() {
char ch;
int cnt[MAXN]; // 记录每个字符出现的次数
memset(cnt, 0, sizeof(cnt)); // 初始化为0
// 统计每个字符出现的次数
while (cin >> ch && ch != '*') {
cnt[ch]++;
}
// 找出出现次数最小的字符出现的次数
int minCnt = 1e9; // 初始化一个很大的数,确保能够找到更小的数
for (int i = 0; i < MAXN; i++) {
if (cnt[i] > 0 && cnt[i] < minCnt) {
minCnt = cnt[i];
}
}
// 输出结果
cout << minCnt << endl;
return 0;
}
主要思路就是定义一个大小为256的数组cnt,每输入一个字符,就把对应位置的计数器加1,最后再扫描一遍数组,找出出现次数最小的计数器的值即可。