c++新手,请大家帮忙看一看代码哪错了

问题描述

c++新手,请大家帮忙看一看代码哪错了
要求:用户输入一段话,输出每个单词出现的次数
如输入:hello my friend . I miss you my friend
输出:单词 次数
hello 1
my 2
friend 2
I 1
miss 1
you 1

#include
#include
#include

using namespace std;

int main()
{

string sen;//用来记录用户输入的句子string word[100];int ab;int times;//用来计相同单词的数目string::size_type first=0end=0;int counter=1;cout<<""请输入一段话:"";getline(cinsen);int i=0;//word数组的下标//将所有标点符号转化为空格for(int j = 0;j<sen.size();j++)    {        if(' ' == sen[j] || '' == sen[j] || '.' == sen[j] || '!' == sen[j] || ';' == sen[j] || '?' == sen[j])            sen[j] = ' ';    }//用空格作为分隔符将字符串中的单词分隔出来while(1){    if(((end=sen.find(' 'first)) != string::npos)||((end=sen.find('  'first)) != string::npos)||((end=sen.find('   'first)) != string::npos))    {        word[i++]=sen.substr(firstend-first);        first=end+1;        counter++;    }    else        break;}word[i]=sen.substr(firstsen.size()-first);cout<<""word""<<setw(13)<<""times""<<endl;cout<<endl;//对比字符串函数中单词出现的次数for(a=0;a<counter-1;a++){    times=0;    for(b=0;b<counter;b++)    {        if(word[a] == word[b])        times++;    }}for(int k=0;k<counter;k++){    cout<<word[k]<<setw(13)<<times<<endl;}return 0;

}
我的结果这么是这样啊?

哪错了啊?我实在搞不懂了。。大家帮我看一看。。

解决方案

程序有根本性的错误,你只有一个time变量,怎么可能保存每个单词出现的次数,起码你需要一个数组吧。

解决方案二:
有几个问题:
1.while(1)循环里,如果当前的字符串不是""""才把它放入word数组里
2.输出的时候,times应该弄成数组的,楼主是一个数的话,最后输出的所有单词的times都是一样的了。。
3.for(a=0;a<counter;a++)循环的次数,应该都是counter次
4.如果找到了相同的单词,应该把后面的这个单词置为""""

 #include <iostream>#include <string>#include <iomanip>using namespace std;int main(){    string sen;//用来记录用户输入的句子    string word[100];    int ab;    int times[100];//用来计相同单词的数目    string::size_type first=0end=0;    int counter=1;    cout<<""请输入一段话:"";    getline(cinsen);    int i=0;//word数组的下标    //将所有标点符号转化为空格    for(int j = 0;j<sen.size();j++)    {        if(' ' == sen[j] || '' == sen[j] || '.' == sen[j] || '!' == sen[j] || ';' == sen[j] || '?' == sen[j])            sen[j] = ' ';    }    //用空格作为分隔符将字符串中的单词分隔出来    while(1)    {        if(((end=sen.find(' 'first)) != string::npos)||((end=sen.find('  'first)) != string::npos)||((end=sen.find('   'first)) != string::npos))        {            if(sen.substr(firstend-first) != """")            {                word[i++]=sen.substr(firstend-first);                counter++;            }            first=end+1;        }        else            break;    }    word[i]=sen.substr(firstsen.size()-first);    cout<<""word""<<setw(13)<<""times""<<endl;    cout<<endl;    //对比字符串函数中单词出现的次数    for(a=0;a<counter;a++)    {        times[a]=1;        for(b=a+1;b<counter;b++)        {            if(word[a] == word[b])            {                times[a]++;                word[b] = """";            }        }    }    for(int k=0;k<counter;k++)    {        if(word[k] != """")            cout<<word[k]<<setw(13)<<times[k]<<endl;    }    return 0;}

解决方案三:
刚刚复制的时候没复制上去

解决方案四: 解决方案五:
iostream
string>
iomanip

解决方案六:
那三个include是
#include
#include
#include

时间: 2025-01-21 05:24:59

c++新手,请大家帮忙看一看代码哪错了的相关文章

开发-请大家帮忙看看这段代码如何写才好?

问题描述 请大家帮忙看看这段代码如何写才好? 如果题目的意思是: 方法头必须是double[] preyPredLV(double[] preyPred, double[] a, double[] b, int n}; 然后,题目的要求如下,谁能给出一段代码,符合题目的要求? The dynamics between predators and preys in a given ecosystem attracts a lot of attention from researchers. Dif

我是新手,请大家帮忙看看我要将从数据库中的数据放到控件label中

问题描述 请帮帮忙,如何将数据库中的字段phone显示在控件label1中?用c#,数据库为oraclelabel1.Text=我想将cmd中的phone字段的值显示在该控件中,请问怎么写啊?源代码如下:stringconnectstring="DataSource=testdb;user=test;password=test;";OracleConnectionconn=newOracleConnection(connectstring);try{conn.Open();Oracle

请高手帮忙把以下JAVA代码翻译成PHP,100分全给你了

问题描述 以下JAVA代码是一个解密算法,请哪位高手帮下忙把以下JAVA类的代码翻译成PHP的类,非常感谢.importjava.io.IOException;importjava.io.UnsupportedEncodingException;importjava.net.URLDecoder;importjava.net.URLEncoder;importjava.security.InvalidAlgorithmParameterException;importjava.security.

c++ 编程问题-请高人指点一下这段代码的执行过程,不胜感激

问题描述 请高人指点一下这段代码的执行过程,不胜感激 请您帮忙分析一下以下代码的执行过程,在下在编译器上跑了一遍,可还是不太明白,希望能得到您的详尽的解释,谢谢! #include using namespace std; class Shape { public: Shape(){} virtual ~Shape() {} virtual float Area() const=0; virtual Shape * Clone() const=0; }; class Circle:public

new-新手求教 请大家帮忙看下源码

问题描述 新手求教 请大家帮忙看下源码 ------------------------DAL------------------------------------------------------------public List select(int UserID) { //初始化数据库连接对象 DateAccessLaye dbmyfile = new DateAccessLaye(); //初始化myfilemodel对象的集合实例 DataTable dsmf = dbmyfile

web服务器启动问题 请大神解答,看不懂代码帮忙备注下,而且什么会弹出cmd,并发布应用

问题描述 web服务器启动问题 请大神解答,看不懂代码帮忙备注下,而且什么会弹出cmd,并发布应用 set MainPath=com.cs.Server :start if not "%JAVA_HOME%" == "" goto gotJava_home set JAVA_HOME=D:jdk1.7.0_67 :gotJava_home set MEM_ARGS=-Xms128m -Xmx512m set JAVA_OPTIONS=-Duser.timezone=

数据-SQLSERVER存储过程,请各位帮忙看一下

问题描述 SQLSERVER存储过程,请各位帮忙看一下 第一条SQL语句执行没有数据则执行第二条SQL语句,第二条SQL语句没有数据则执行第三条语句 下面是SQL语句 第一句 select * into #TemPoraryBgoods from ( select distinct a.company,a.code,a.name,b.hyprice,a.comeFrom,finish=ISNULL(a.finish,''),c.smallfanwei, dbo.GetDistancefromLn

java-这两种写法有什么差别???请大家帮忙看一看

问题描述 这两种写法有什么差别???请大家帮忙看一看 public void getBenjin() { if (null != benjin.getText()) { benjinD = Double.parseDouble(benjin.getText().toString()); } } public void getLilv() { if (null != lilv.getText()) { lilvD = Double.parseDouble(lilv.getText().toStri

android开发-recylerview添加head的问题,请各位帮忙看下咋解决

问题描述 recylerview添加head的问题,请各位帮忙看下咋解决 recylerview是纵向的,我在head中添加了一个横向滚动的recyclerview 当手指按在横向recyclerview下拉的时候纵向的recyclerview会向下跳动一段距离(不是正常滑动距离),怎么解决啊?开发-recylerview添加head的问题,请各位帮忙看下咋解决-recylerview"> 解决方案 VC++问题 帮忙解决哈C#程序集问题,请高手帮忙解决一下!!关于xslt的问题,请大家帮