Здравейте!
Имам една курсова работа по C++. Горе долу написах кода, но има някакъв проблем в него който немога да открия.
Заданието е: Даден е низ съставен от произволен брой думи. Да се състави целочислен масив, нулевия елемент на който съдържа броя на интервалите в низа, първия елемент съдържа броя на думите от по 1 знак, втория елемент съдържа броя на думите с 2 знака и т.н.
Ето го и кода който скалъпих:
#include <iostream>
using namespace std;
bool bukva(char a){
return (a>='a'&&a<='z') || (a>='A' && a<='Z');
}
int main(){
char text[80];
cout << "Vyvedete text:\n";
cin.getline (text,80);
int duljina=sizeof(text)/sizeof(char);
int i,temp=0;
int rezultat[]={0,0,0,0,0,0,0,0,0,0,0,0,0,0,0}; // za dumi do 14 znaka
for(i=0;i<duljina;i++){
if(bukva(text[i])){
temp++;
}else{
if(text[i]==' ') rezultat[0]++;
if(temp){
if(temp<=14){
rezultat[temp]++;
}
temp=0;
}
}
}
cout<<"Resultat:\n\nBeli poleta: "<<rezultat[0]<<endl;
for(i=1;i<=14;i++) cout<<"Dumi s "<<i<<" znaka: "<<rezultat[i]<<endl;
system("pause");
return 0;
}
Както забелязахте програмата работи, но не отчита правилно празните полета, думите с 1 буква и думите с 2 букви.
Моля който разбира да помогне и да каже къде ми е грешката.
Благодаря предварително!