问题标题: 酷町堂:4903

0
0
已解决
朱家烨
朱家烨
资深守护
资深守护
#include<iostream>
#include<string>
#include<cstring>
#include<cmath>
#include<cstdio> 
using namespace std;
void sj(int &n,char &k,string &s){
    int cnt=0;
    for(int i=1;i<=n;i++){
        for(int j=0;j<s.size();j++){
            int p=s.find(k);
            cout<<p<<endl;
            cnt++;
        }
    }
}
int main(){
    int n;
    string s;
    char k;
    cin>>n>>k;
    getline(cin,s);
    for(int i=1;i<=n;i++){
        getline(cin,s);
    }
    sj(n,k,s); 
    return 0;

}

怎么错了


0
已采纳
王子健
王子健
初级天翼
初级天翼

你的代码什么鬼,完全没理解(doge)

 

我的思路共享:

1.先写一个找字符的函数f,在每个字符串里找字符a(注意是输入的char a)

2.在主函数里输入n个字符串,调用函数并且用一个sum来算出所有a的个数

3.最后换行输出每次的个数和在循环外输出sum

 

 

主要函数代码如下:

主函数加输入输出:

 

其实是一道简单的水题,加油吧,少年!

0
吴卓励
吴卓励
初级守护
初级守护


int f(string s,char a)
{
    int len=s.size(),cnt=0;
    for(int i=0;i<len;i++)
    {
        if(s[i]==a)
        {
            cnt++;
        }
    }
    cout<<cnt<<endl;
    return cnt;
}

函数 
int main()
{
    int n,sum=0;
    string s[100];
    char a;
    cin>>n>>a;
    for(int i=1;i<=n;i++)
    {
        cin>>s[i];

    }
    for(int i=1;i<=n;i++){
        sum+=f(s[i],a);
    }
    cout<<sum;
    return 0;
}

我要回答