C++ 从输入中读出一系列单词。使用「;“退出”;若要终止,请按输入顺序打印,然后按';不要把一个字打印两次。
如果有人能提供比我更好的代码,那就太好了,尽管它也很糟糕。还有,我的代码有问题!!当我打印我的新数组C++ 从输入中读出一系列单词。使用「;“退出”;若要终止,请按输入顺序打印,然后按';不要把一个字打印两次。,c++,C++,如果有人能提供比我更好的代码,那就太好了,尽管它也很糟糕。还有,我的代码有问题!!当我打印我的新数组arr时,在输出中,当有重复的单词时,将跳过数组的位置,并为该单词输出一个空白 例如: bat, cat, mat, //here the word bat is not printed again, but instead i get an empty space rat, quit, 也请只使用指针,数组或字符串,因为我还没有研究向量,列表,地图等。多谢各位 #include&
arr
时,在输出中,当有重复的单词时,将跳过数组的位置,并为该单词输出一个空白
例如:
bat,
cat,
mat,
//here the word bat is not printed again, but instead i get an empty space
rat,
quit,
也请只使用指针,数组或字符串,因为我还没有研究向量,列表,地图等。多谢各位
#include<iostream>
#include<conio.h>
#include<string>
using namespace std;
int main()
{
string word[100];
string arr[100];
int i=0,j,k,m,n;
while(1)
{
cout<<"enter word: \n";
cin>>word[i];
if(word[i]=="quit")
break;
i++;
}
for(j=i,m=0;j>=0,m<=i;m++)
{
for(k=j-1;k>=0;k--)
{
if(word[j] == word[k])
goto start;
}
arr[m]=word[j];
start:
j--;
}
for(n=m;n>0;n--)
cout<<arr[n]<<"\n";
getch();
}
#包括
#包括
#包括
使用名称空间std;
int main()
{
字符串字[100];
字符串arr[100];
int i=0,j,k,m,n;
而(1)
{
coutword[i];
如果(字[i]=“退出”)
打破
i++;
}
对于(j=i,m=0;j>=0,m=0;k--)
{
if(字[j]==字[k])
转到开始;
}
arr[m]=字[j];
开始:
j--;
}
对于(n=m;n>0;n--)
cout修正了一点,我不想花时间去理解你的,因为(j=I,m=0;j>=0,m)这个问题可能会问得更好。另外,欢迎使用堆栈溢出。请花时间阅读。你会得到一个(c:@PeterWood:code Review是针对有效的代码的。我无法重现任何问题,代码工作得很好。在“退出”之前,它会得到单词然后打印出来。又是什么问题?@Mat抱歉,我只读了第一句。IHMO最好在found=true;
之后插入break;
#include<iostream>
#include<conio.h>
#include<string>
using namespace std;
int main()
{
string word[100];
string arr[100];
int wordCount = 0;
while(1)
{
cout<<"enter word: \n";
cin>>word[wordCount];
if(word[wordCount] == "quit")
{
break;
}
++wordCount;
}
int arrCount = 0;
for(int i = 0; i < wordCount; ++i)
{
bool found = false;
for (int j = 0; j < arrCount; ++j)
{
if (arr[j] == word[i])
{
found = true;
break;
}
}
if (!found)
{
arr[arrCount] = word;
++arrCount;
}
}
for(int i = 0; i < arrCount; ++i)
{
cout<<arr[n]<<"\n";
}
getch();
}