Mért nem számolja össze jól a magánhangzókat?
Az lenne a feladat hogy a program bekérjen egy max 6 soros verset, számolja össze a karaktereket, de az írásjeleket ne, és a magánhangzókat külön, és írja is ki egyesével...már megvan...csak összesítve a magánhangzókat rosszul adja össze..mi lehet a gond?
#include <iostream>
#include<stdio.h>
#include<stdlib.h>
#include<string.h>
using namespace std;
int main()
{
int i,k,sor,maganhangzo=0,betu=0,m=0;
int a=0,b=0,c=0,d=0,e=0;
char s[80],hangzok[]={'a','e','i','o','u','A','E','I','O','U'};
cout<<"Add meg hany soros a versszak! >";
cin>>sor;
for(i=0;i<=((sor >= 6 ) ? 6 : sor);i++)
{
cin.getline(s,80);
for(k=0;k<(strlen(s));k++)
{
for(m=0;m<1;m++){
if(s[k]==hangzok[m])
maganhangzo++;
if(s[k]==hangzok[0])
a++;
if(s[k]==hangzok[5])
a++;
if(s[k]==hangzok[1])
b++;
if(s[k]==hangzok[6])
b++;
if(s[k]==hangzok[2])
c++;
if(s[k]==hangzok[7])
c++;
if(s[k]==hangzok[3])
d++;
if(s[k]==hangzok[8])
d++;
if(s[k]==hangzok[4])
e++;
if(s[k]==hangzok[9])
e++;}
if(s[k]==' '||s[k]==','||s[k]=='!'||s[k]=='"'||s[k]=='?'||s[k]==';'||s[k]==':'||s[k]=='.'||s[k]=='-'||s[k]=='('||s[k]==')'||s[k]=='/')
betu -= 1;
}
betu+=k;
}
cout<<"karakterszam: " <<betu<<endl;
cout<<"maganhangzoszam: " <<maganhangzo<<endl;
cout<<"a: "<<a<<endl;
cout<<"e: "<<b<<endl;
cout<<"i: "<<c<<endl;
cout<<"o: "<<d<<endl;
cout<<"u: "<<e<<endl;
system("pause");
return 0;
}
for(m=0;m<1;m++) helyett: for(m=0;m<10;m++)
a két feltétel, pedig:
if(s[k] == hangzok[m]){++maganhangzo;}
if(s[k] >= 'a' && s[k] <= 'z' || s[k] > 'A' && s[k] <= 'Z'){++betu;}
Kapcsolódó kérdések:
Minden jog fenntartva © 2024, www.gyakorikerdesek.hu
GYIK | Szabályzat | Jogi nyilatkozat | Adatvédelem | Cookie beállítások | WebMinute Kft. | Facebook | Kapcsolat: info(kukac)gyakorikerdesek.hu
Ha kifogással szeretne élni valamely tartalommal kapcsolatban, kérjük jelezze e-mailes elérhetőségünkön!