| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 2858 人关注过本帖
标题:输入一串单词,输出时去掉重复单词
只看楼主 加入收藏
karlzhouzhi
Rank: 1
等 级:新手上路
帖 子:70
专家分:0
注 册:2005-12-25
收藏
 问题点数:0 回复次数:3 
输入一串单词,输出时去掉重复单词

#include<iostream.h>
#include<string.h>

void main()
{
char *p[10];//存储输入的一系列单词的指针
cout<<"input a set of words:"<<endl;
char string[10][10];
cin>>string[0];
int k=0;

for(int i=0;strcmp("Quit",string[i])&&i<10;)//输入一系列单词
{
p[i]=string[i];//第i个指针指向第i个元素
k++; //记录输入个数

i++;
cin>>string[i];
}
cout<<endl;

for(i=0;i<k;i++)
{
while(strcmp(p[i],p[i+1])==0)//
i++; //这两行有问题,我想使重复的单词只输出一个。但是,结果不对?为什么,怎么改进
cout<<p[i]<<endl;
}
}

搜索更多相关主题的帖子: 单词 输出 输入 
2006-02-23 13:47
柳儿
Rank: 6Rank: 6
等 级:贵宾
威 望:25
帖 子:1830
专家分:30
注 册:2004-9-23
收藏
得分:0 
比较重复的单词只比较了前后相邻的两个,如果隔了几个单词,出现了重复的,要不要去掉?

成功会使人骄傲。如果你骄傲自大,你就会停止学习。不学习,人就停止了进步
2006-02-23 13:53
zyz801229
Rank: 1
等 级:新手上路
帖 子:3
专家分:0
注 册:2006-2-23
收藏
得分:0 

#include<iostream>
#include<string>
using namespace std;

void main()
{
char *p[10];//存储输入的一系列单词的指针
cout<<"input a set of words:"<<endl;
char string[10][10];
cin>>string[0];
int k=0;

for(int i=0;strcmp("Quit",string[i])&&i<10;)//输入一系列单词
{
p[i]=string[i];//第i个指针指向第i个元素
k++; //记录输入个数

i++;
cin>>string[i];
}
cout<<endl;

for(int i=0;i<k;i++)
{
int counter=0;
for(int j=i+1;j<k;j++)
{
if(strcmp(string[i],string[j])==0)
counter++;
}
if(counter==0)
cout << string[i] << endl;
}
}
自己对这程序理解下~~呵呵

2006-02-23 16:59
karlzhouzhi
Rank: 1
等 级:新手上路
帖 子:70
专家分:0
注 册:2005-12-25
收藏
得分:0 
以下是引用zyz801229在2006-2-23 16:59:00的发言:

#include<iostream>
#include<string>
using namespace std;

void main()
{
char *p[10];//存储输入的一系列单词的指针
cout<<"input a set of words:"<<endl;
char string[10][10];
cin>>string[0];
int k=0;

for(int i=0;strcmp("Quit",string[i])&&i<10;)//输入一系列单词
{
p[i]=string[i];//第i个指针指向第i个元素
k++; //记录输入个数

i++;
cin>>string[i];
}
cout<<endl;

for(int i=0;i<k;i++)
{
int counter=0;
for(int j=i+1;j<k;j++)
{
if(strcmp(string[i],string[j])==0)
counter++;
}
if(counter==0)
cout << string[i] << endl;
}
}
自己对这程序理解下~~呵呵

你的程序可以去除重复的单词,但是不能保证按输入的顺序输出,比如输入zhou zhou zhi zhi zhi zhou ,你的程序结果是:zhi zhou
我将程序修改了一下,可以让结果输出:zhou zhi
#include<iostream.h>
#include<string.h>

void main()
{
char *p[10];//存储输入的一系列单词的指针
cout<<"input a set of words:"<<endl;
char string[10][10];
cin>>string[0];
int k=0;

for(int i=0;strcmp("Quit",string[i])&&i<10;)//输入一系列单词
{
p[i]=string[i];//第i个指针指向第i个元素
k++; //记录输入个数

i++;
cin>>string[i];
}
cout<<endl;

int n=0;//用来记录单词的个数(不包括重复的单词)
char result[10][10];//去除重复的单词后,将结果保存在result里面
strcpy(result[0],string[0]);
n++;//记录result里面的单词个数,也就是出去重复单词后的个数
for(i=1;i<k;i++)//遍历整个输入的单词串
{
int flag=0;//如果出现重复的单词就改变flag的值,使它得1
for(int j=0;j<n;j++)//将每一个输入串中的单词都与result中的单词做比较
if(strcmp(string[i],result[j])==0)
{
flag=1;
break;
}
if(flag==0)//如果没有重复的单词就将这个单词放入result中
{
strcpy(result[j],string[i]);
n++;
}
}
for(i=0;i<n;i++)
cout<<result[i]<<endl;
}

2006-02-24 20:24
快速回复:输入一串单词,输出时去掉重复单词
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.032516 second(s), 8 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved