fshb_ 1370
دوشنبه 16 فروردین 1389, 17:36 عصر
سلام
میخوام یه برنامه بنویسم که تعداد تکرار هر کلمه در جمله رو محاسبه کنه و بعد تعداد هر کلمه رو در صفحه نمایش بده. من برنامه زیر رو نوشتم ولی مشکلش اینه که مثلا اگر جمله
"fshb va fshb" رو وارد کنم خروجی برنامه هست:fshb=2, va=1, fshb=1
مشکل برنامه من اینه که نباید fshb=1 رو چاپ کنه، اگه میشه راهنمایی کنید چه شکلی مشکل برنامه رو حل کنم.:ناراحت:
#include<iostream>
#include<vector>
#include<string>
using namespace std;
void main()
{
char a[100];
cin.getline(a,100);
int i=0,j=0,k=0,n=-1;
cout<<"tedade kalamat:"<<endl;
do{
j=0;
i=n+1;
vector<char> b(100);
vector<char> c(100);
do {
k=0;
while(a[i]!=' '&&a[i]!='\0')
{
b[k]=a[i];
k++;
i++;
}
if (j==0)
{
c=b;
n=i;
}
if (b==c)
j++;
if (a[i]!='\0')
i++;
}while(a[i]!='\0');
//
k=0;
while(c[k]!='\0')
{
cout<<c[k];
k++;
}
cout<<"="<<j<<endl;
}while(a[n]!='\0');
}
میخوام یه برنامه بنویسم که تعداد تکرار هر کلمه در جمله رو محاسبه کنه و بعد تعداد هر کلمه رو در صفحه نمایش بده. من برنامه زیر رو نوشتم ولی مشکلش اینه که مثلا اگر جمله
"fshb va fshb" رو وارد کنم خروجی برنامه هست:fshb=2, va=1, fshb=1
مشکل برنامه من اینه که نباید fshb=1 رو چاپ کنه، اگه میشه راهنمایی کنید چه شکلی مشکل برنامه رو حل کنم.:ناراحت:
#include<iostream>
#include<vector>
#include<string>
using namespace std;
void main()
{
char a[100];
cin.getline(a,100);
int i=0,j=0,k=0,n=-1;
cout<<"tedade kalamat:"<<endl;
do{
j=0;
i=n+1;
vector<char> b(100);
vector<char> c(100);
do {
k=0;
while(a[i]!=' '&&a[i]!='\0')
{
b[k]=a[i];
k++;
i++;
}
if (j==0)
{
c=b;
n=i;
}
if (b==c)
j++;
if (a[i]!='\0')
i++;
}while(a[i]!='\0');
//
k=0;
while(c[k]!='\0')
{
cout<<c[k];
k++;
}
cout<<"="<<j<<endl;
}while(a[n]!='\0');
}