Diskuze: Pomoc s ulohou

C++ C a C++ Pomoc s ulohou

Avatar
Adam
Člen
Avatar
Adam:

caute vedeli by ste prosimvas niekto pomoct s touto ulohou ?

Vytvorte funkciu int countVowels(const char a, const charb), ktora spocita samohlasky na intervale medzi dvoma pismenami.

Return
funckia vrati pocet samohlasok nachadzajucich sa na intervale medzi dvoma pismenami(vratane tychto pismen). Na poradi pismen nezalezi(nezelezi ktore z pismen je v abecede skor). Avsak ak nie su obidve pismena velke resp. male funkcia vrati 0 alebo ak niektore zo vstupnych znakov nie je pismeno , funkcia frati opat 0.

Dakujem za pomoc

Editováno 30. ledna 21:45
 
Odpovědět 30. ledna 21:43
Avatar
Jaro
Člen
Avatar
Odpovídá na Adam
Jaro:

ukáž čo si zatiaľ sám spravil, hádam si nemyslíš, že ti tu niekto postne hotové riešenie :)

Nahoru Odpovědět 30. ledna 21:55
A ship is safe in harbor. But then again, that´s not what ships are for.
Avatar
Adam
Člen
Avatar
Adam:
#include<stdio.h>
#include<stdlib.h>
#include<ctype.h>
#include<string.h>

int countVowels(const char a, const char b){

char ch;
int sum=0;

if((a>='a'&& a<= 'z') || (a>='A' && a<='Z')){

if (ch == 'a' || ch == 'A' || ch == 'e' || ch == 'E' || ch == 'i' ||

 ch == 'I' || ch =='o' || ch=='O' || ch == 'u' || ch == 'U'){


int main(){


printf("%d\n",countVowels('e','a'));




return 0;
}
 
Nahoru Odpovědět 30. ledna 22:07
Avatar
Adam
Člen
Avatar
Adam:

nemam v podstate nic .. neviem ako vytvorit ten interval ..

 
Nahoru Odpovědět 30. ledna 22:17
Avatar
Slavomir
Redaktor
Avatar
Slavomir:

C++ neovládam, ale v C# by som to napísal asi takto. Kontrolu pre veľké a malé písmená som tam nedal, iba počítanie samohlások.

public int countVowels(char a, char b)
        {
            string abeceda = "abcdefghijklmnopqrstuvwxyz";
            int start = abeceda.IndexOf(a);
            int end = abeceda.IndexOf(b);
            int count = 0;
            string samohlasky = "aeiouy";


            for (int i = start; i <= end; i++)
            {
                if (samohlasky.Contains(abeceda[i]))
                    count++;
            }



            return count;
        }
 
Nahoru Odpovědět 30. ledna 22:32
Avatar
Odpovídá na Adam
Libor Šimo (libcosenior):

Napríklad takto:

#include <stdio.h>

int countVowels(const char a, const char b)
{
    char samohlasky[] = "aeiyou";
    int i, j, pocet = 0;

    if (a < b) {
        for (i = a; i <= b; i++) {
            for (j = 0; j < 6; j++) {
                if (i == samohlasky[j])
                    pocet++;
            }
        }
    }
    else {
        for (i = b; i <= a; i++) {
            for (j = 0; j < 6; j++) {
                if (i == samohlasky[j])
                    pocet++;
            }
        }
    }
    return pocet;
}


int main(void)
{
    printf("%d\n",countVowels('a','y'));

    return 0;
}
Nahoru Odpovědět 31. ledna 9:05
Aj tisícmíľová cesta musí začať jednoduchým krokom.
Avatar
Odpovídá na Adam
Libor Šimo (libcosenior):

Až teraz som si všimol podmienku rozdielnych veľkostí písmen.

#include <stdio.h>
#include <ctype.h>

int countVowels(const char a, const char b)
{
    char samohlasky[] = "aeiyouAEIYOU";
    int i, j, pocet = 0;

    if ((islower(a) && islower(b)) || (isupper(a) && isupper(b))) {
        if (a < b) {
            for (i = a; i <= b; i++) {
                for (j = 0; j < 12; j++) {
                    if (i == samohlasky[j])
                        pocet++;
                }
            }
        }
        else {
            for (i = b; i <= a; i++) {
                for (j = 0; j < 12; j++) {
                    if (i == samohlasky[j])
                        pocet++;
                }
            }
        }
    }
    return pocet;
}


int main(void)
{
    printf("%d\n",countVowels('A','Z'));
    printf("%d\n",countVowels('Z','A'));
    printf("%d\n",countVowels('a','Z'));
    printf("%d\n",countVowels('A','z'));
    printf("%d\n",countVowels('a','z'));
    printf("%d\n",countVowels('z','a'));

    return 0;
}
Nahoru Odpovědět 31. ledna 9:47
Aj tisícmíľová cesta musí začať jednoduchým krokom.
Děláme co je v našich silách, aby byly zdejší diskuze co nejkvalitnější. Proto do nich také mohou přispívat pouze registrovaní členové. Pro zapojení do diskuze se přihlas. Pokud ještě nemáš účet, zaregistruj se, je to zdarma.

Zobrazeno 7 zpráv z 7.