este programa esta quase feito so que falta um promenor qualquer que nao consigo encontar se me podessem ajudar agradecia!
#include <stdio.h>
int main()
{
char frase[100];
int a, e, i, o, u;
scanf("%s", &frase);
int n;
char s;
for(n=0;n<s;n++)
{
a=0;
e=0;
i=0;
o=0;
u=0;
if(a == frase[n])
{
a=a + 1;
}
else if(e == frase[n])
{
e=e + 1;
}
else if(i == frase[n])
{
i=i + 1;
}
else if(o == frase[n])
{
o=o + 1;
}
else if(u == frase[n])
{
u=u + 1;
}
}
return 0;
}
Qual é o objectivo do teu programa?
Convinha que desses uma breve descrição do objectivo desse programa, para te podermos ajudar...
Já agora, coloca o código entre tags [code], para preservar a indentação.
este programa esta quase feito so que falta um promenor qualquer que nao consigo encontar se me podessem ajudar agradecia!
"""para descobrir quantas voguais é que há na frase, que o utilizador escreve....Exemplo: "Ola mundo" --> o programa deve dizer assim,O=2, a=1, u=1""""
#include <stdio.h>
int main()
{
char frase[100];
int a, e, i, o, u;
scanf("%s", &frase);
int n;
char s;
for(n=0;n<s;n++)
{
a=0;
e=0;
i=0;
o=0;
u=0;
if(a == frase[n])
{
a=a + 1;
}
else if(e == frase[n])
{
e=e + 1;
}
else if(i == frase[n])
{
i=i + 1;
}
else if(o == frase[n])
{
o=o + 1;
}
else if(u == frase[n])
{
u=u + 1;
}
}
return 0;
}
Ok, tens aí bastantes erros...
Tenta assim: (edit: o Post abaixo do RaCcOn fez-me reparar que não conto com as vogais maiúsculas)
Código:
#include <stdio.h>
int main()
{
char frase[100];
int a, e, i, o, u, n;
scanf("%s", &frase);
n = 0;
a = 0;
e = 0;
i = 0;
o = 0;
u = 0;
while (frase[n] != "\0") {
if ('a' == frase[n] || 'A' == frase[n]) {
a++;
} else if ('e' == frase[n] || 'E' == frase[n]) {
e++;
} else if ('i' == frase[n] || 'I' == frase[n]) {
i++;
} else if ('o' == frase[n] || 'O' == frase[n]) {
o++;
} else if ('u' == frase[n] || 'U' == frase[n]) {
u++;
}
n++;
}
printf("\nResultados: a = %d, e = %d, i = %d, o = %d, u = %d\n",a,e,i,o,u);
Não será algo deste género que tu queres?
Código:
#include<iostream>
#include<cstring>
using namespace std;
int main(){
int contador=0;
char frase[1001];
cout << "Digite a sua frase com até 1000 caracteres:" << endl;
gets(frase);
for (int i=0; i<strlen(frase) ;i++){
if( isalpha(frase[i]) ) {
if( frase[i]=='a' || frase[i]=='e' || frase[i]=='i' || frase[i]=='o' || frase[i]=='u')
contador++;
else if( frase[i]=='A' || frase[i]=='E' || frase[i]=='I' || frase[i]=='O' || frase[i]=='U' )
contador++;
}
}
cout << "A sua frase tem " << contador << " vogais" << endl;
return 0;
}
acho que existe mesmo uma funcao para testar se e vogal. de qualquer das maneiras nao se deve utilizar ifs/|| para testar varios atributos do mesmo tipo.
usa se um switch.
Não sei se venho tarde mas... Fiz isto assim em cima do joelho... Espero que ajude.
Código:
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
unsigned char counter[5] = {0,0,0,0,0};
void is_vogal (char *vogal) {
unsigned int i;
for (i=0;i<=strlen(vogal);i++) { // percorre a string toda
switch (tolower(vogal[i])) { // coloca todas as vogais como minusculas
case 'a' : counter[0] += 1; break; // caso seja 'a' , incrementa um valor na posição 0 do vector.
case 'e' : counter[1] += 1; break; // caso seja 'e' , incrementa um valor na posição 1 do vector.
case 'i' : counter[2] += 1; break; // caso seja 'i' , incrementa um valor na posição 2 do vector.
case 'o' : counter[3] += 1; break; // caso seja 'o' , incrementa um valor na posição 3 do vector.
case 'u' : counter[4] += 1; break; // caso seja 'u' , incrementa um valor na posição 4 do vector.
default : continue;
}
}
}
int main (int argc, char **argv) {
if (argc!=2) { printf ("Sintaxe:\n\n%s <string>",argv[0]); exit(0); } // a aplicação tem que ser chamada com 1 argumento
is_vogal(argv[1]); // "sobe" para a função "is_vogal" levando como argumento a string colocada quando se chamou o programa
printf ("a = %d\ne = %d\ni = %d\no = %d\nu = %d\n\n", counter[0], counter[1], counter[2], counter[3], counter[4]);
return 0;
}
Exemplo:
[tiago@startrek linguagem_c]$ ./is_vogal Hello World
Sintaxe:
./is_vogal <string>
[tiago@startrek linguagem_c]$ ./is_vogal "Hello World"
a = 0
e = 1
i = 0
o = 2
u = 0
Abraço
r_gama Escreveu:
Código:
scanf("%s", &frase);
O uso do scanf é altamente desencorajado pois possui falhas, que podem levar a falhas de segurança.
(25-05-2009 21:34)RaCcOn Escreveu: [ -> ]Não será algo deste género que tu queres?
É sim, mas isso é C++.
(25-05-2009 22:32)Sight Escreveu: [ -> ]acho que existe mesmo uma funcao para testar se e vogal.
Só em C++, salvo erro.
(27-05-2009 15:18)_Planax_ Escreveu: [ -> ]O uso do scanf é altamente desencorajado pois possui falhas, que podem levar a falhas de segurança.
creio que te referes ao scanf para ler strings correcto? se sim entao concordo contigo. ja nao me lembro bem qual era a funcao que utilizava o ano passado, mas acho que era a gets();