Jump to content

Programa que conta vogais e caracteres


DarkAngel

Recommended Posts

Este programa que eu fiz conta o número de caracteres e o número de vogais de uma string. Espero que seja util.

#include <stdio.h>
#include <string.h>

float conta_a (char str [ ])
{
int i, count=0;
for(i=0; str[i]!='\0'; i++)
if (str[i]=='a'||str[i]=='A'||str[i]=='e'||str[i]=='E'||str[i]=='i'||str[i]=='I'||str[i]=='o'||str[i]=='O'||str[i]=='u'||str[i]=='U') count++;
return count;
}

int main()
{
char palavra[21];
int tamanho;
float soma;
printf ("Digite uma palavra: ");
gets (palavra);
tamanho = strlen(palavra);
printf("Existem %.0f vogais.\nExistem %d caracteres", conta_a(palavra),tamanho);
soma= (conta_a(palavra)*100)/tamanho;
printf("\nA porcentagem de vogais e %.2f",soma);
return 0;
}
Edited by DarkAngel
Erro ao copiar para o site
Link to comment
Share on other sites

hum ... certo ...

gcc -c -g -MD -MP -Wall -Werror -pedantic --std=c99 -I./include/ src/main.c -o obj/CYGWIN_NT-10.0/pap/./src/main.debug.o
src/main.c: In function ‘conta_a’:
src/main.c:8:8: error: comparison between pointer and integer [-Werror]
 if (str=='a'||str=='A'||str=='e'||str=='E'||str=='i'||str=='I'||str=='o'||str=='O'||str=='u'||str=='U') count++;
        ^
src/main.c:8:18: error: comparison between pointer and integer [-Werror]
 if (str=='a'||str=='A'||str=='e'||str=='E'||str=='i'||str=='I'||str=='o'||str=='O'||str=='u'||str=='U') count++;
                  ^
src/main.c:8:28: error: comparison between pointer and integer [-Werror]
 if (str=='a'||str=='A'||str=='e'||str=='E'||str=='i'||str=='I'||str=='o'||str=='O'||str=='u'||str=='U') count++;
                            ^
src/main.c:8:38: error: comparison between pointer and integer [-Werror]
 if (str=='a'||str=='A'||str=='e'||str=='E'||str=='i'||str=='I'||str=='o'||str=='O'||str=='u'||str=='U') count++;
                                      ^
src/main.c:8:48: error: comparison between pointer and integer [-Werror]
 if (str=='a'||str=='A'||str=='e'||str=='E'||str=='i'||str=='I'||str=='o'||str=='O'||str=='u'||str=='U') count++;
                                                ^
src/main.c:8:58: error: comparison between pointer and integer [-Werror]
 if (str=='a'||str=='A'||str=='e'||str=='E'||str=='i'||str=='I'||str=='o'||str=='O'||str=='u'||str=='U') count++;
                                                          ^
src/main.c:8:68: error: comparison between pointer and integer [-Werror]
 if (str=='a'||str=='A'||str=='e'||str=='E'||str=='i'||str=='I'||str=='o'||str=='O'||str=='u'||str=='U') count++;
                                                                    ^
src/main.c:8:78: error: comparison between pointer and integer [-Werror]
 if (str=='a'||str=='A'||str=='e'||str=='E'||str=='i'||str=='I'||str=='o'||str=='O'||str=='u'||str=='U') count++;
                                                                              ^
src/main.c:8:88: error: comparison between pointer and integer [-Werror]
 if (str=='a'||str=='A'||str=='e'||str=='E'||str=='i'||str=='I'||str=='o'||str=='O'||str=='u'||str=='U') count++;
                                                                                        ^
src/main.c:8:98: error: comparison between pointer and integer [-Werror]
 if (str=='a'||str=='A'||str=='e'||str=='E'||str=='i'||str=='I'||str=='o'||str=='O'||str=='u'||str=='U') count++;
                                                                                                  ^
cc1: all warnings being treated as errors
make: *** [Makefile:67: obj/CYGWIN_NT-10.0/pap/./src/main.debug.o] Error 1

isto para não falar que está claramente errado ...

Edited by HappyHippyHippo
IRC : sim, é algo que ainda existe >> #p@p
Link to comment
Share on other sites

2 minutos atrás, HappyHippyHippo disse:

hum ... certo ...


gcc -c -g -MD -MP -Wall -Werror -pedantic --std=c99 -I./include/ src/main.c -o obj/CYGWIN_NT-10.0/pap/./src/main.debug.o
src/main.c: In function ‘conta_a’:
src/main.c:8:8: error: comparison between pointer and integer [-Werror]
 if (str=='a'||str=='A'||str=='e'||str=='E'||str=='i'||str=='I'||str=='o'||str=='O'||str=='u'||str=='U') count++;
        ^
src/main.c:8:18: error: comparison between pointer and integer [-Werror]
 if (str=='a'||str=='A'||str=='e'||str=='E'||str=='i'||str=='I'||str=='o'||str=='O'||str=='u'||str=='U') count++;
                  ^
src/main.c:8:28: error: comparison between pointer and integer [-Werror]
 if (str=='a'||str=='A'||str=='e'||str=='E'||str=='i'||str=='I'||str=='o'||str=='O'||str=='u'||str=='U') count++;
                            ^
src/main.c:8:38: error: comparison between pointer and integer [-Werror]
 if (str=='a'||str=='A'||str=='e'||str=='E'||str=='i'||str=='I'||str=='o'||str=='O'||str=='u'||str=='U') count++;
                                      ^
src/main.c:8:48: error: comparison between pointer and integer [-Werror]
 if (str=='a'||str=='A'||str=='e'||str=='E'||str=='i'||str=='I'||str=='o'||str=='O'||str=='u'||str=='U') count++;
                                                ^
src/main.c:8:58: error: comparison between pointer and integer [-Werror]
 if (str=='a'||str=='A'||str=='e'||str=='E'||str=='i'||str=='I'||str=='o'||str=='O'||str=='u'||str=='U') count++;
                                                          ^
src/main.c:8:68: error: comparison between pointer and integer [-Werror]
 if (str=='a'||str=='A'||str=='e'||str=='E'||str=='i'||str=='I'||str=='o'||str=='O'||str=='u'||str=='U') count++;
                                                                    ^
src/main.c:8:78: error: comparison between pointer and integer [-Werror]
 if (str=='a'||str=='A'||str=='e'||str=='E'||str=='i'||str=='I'||str=='o'||str=='O'||str=='u'||str=='U') count++;
                                                                              ^
src/main.c:8:88: error: comparison between pointer and integer [-Werror]
 if (str=='a'||str=='A'||str=='e'||str=='E'||str=='i'||str=='I'||str=='o'||str=='O'||str=='u'||str=='U') count++;
                                                                                        ^
src/main.c:8:98: error: comparison between pointer and integer [-Werror]
 if (str=='a'||str=='A'||str=='e'||str=='E'||str=='i'||str=='I'||str=='o'||str=='O'||str=='u'||str=='U') count++;
                                                                                                  ^
cc1: all warnings being treated as errors
make: *** [Makefile:67: obj/CYGWIN_NT-10.0/pap/./src/main.debug.o] Error 1

Que compilador voce usa?? eu uso o DEV c++ e funciona

Link to comment
Share on other sites

Just now, DarkAngel said:

eu to lhe dizendo que esta a funcionar! eu ando no 10º ano e o meu professor já corrigiu e funciona,experimente utilizar outro compilador como o dev c++

funciona a 100%

se o teu professor aceitou isso como resolvido, que vá tirar o curso novamente.

(não deves fazer ideia de quantas vezes já disse isto aqui no fóum, e o mais engraçado é que ainda ninguem me desmintiu)

IRC : sim, é algo que ainda existe >> #p@p
Link to comment
Share on other sites

se é para fazer, ao menos faz como deve ser

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

#define MAX 100

unsigned int conta(char * str)
{
  unsigned int count=0;
  while (* str)
  {
    switch (tolower(* str))
    {
      case 'a':
      case 'e':
      case 'i':
      case 'o':
      case 'u':
        count++;
        break;
    }
    ++str;
  }
  return count;
}

int main()
{
  char palavra[MAX];
  printf ("Digite uma palavra: ");
  fflush(stdout);

  if (fgets(palavra, MAX, stdin) == NULL)
  {
    printf("Erro na leitura da palavra\n");
    return -1;
  }

  size_t tamanho = strlen(palavra);
  if (palavra[tamanho - 1] == '\n')
  {
    palavra[tamanho - 1] = '\0';
    --tamanho;
  }

  unsigned int nvogais = conta(palavra);

  printf("Existem %d caracteres\n", tamanho);
  printf("Existem %d vogais.\n", nvogais);
  printf("A porcentagem de vogais e %.2f", (float) nvogais / tamanho);

  return 0;
}
IRC : sim, é algo que ainda existe >> #p@p
Link to comment
Share on other sites

5 minutos atrás, HappyHippyHippo disse:

se é para fazer, ao menos faz como deve ser


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

#define MAX 100

unsigned int conta(char * str)
{
  unsigned int count=0;
  while (* str)
  {
    switch (tolower(* str))
    {
      case 'a':
      case 'e':
      case 'i':
      case 'o':
      case 'u':
        count++;
        break;
    }
    ++str;
  }
  return count;
}

int main()
{
  char palavra[MAX];
  printf ("Digite uma palavra: ");
  fflush(stdout);

  if (fgets(palavra, MAX, stdin) == NULL)
  {
    printf("Erro na leitura da palavra\n");
    return -1;
  }

  size_t tamanho = strlen(palavra);
  if (palavra[tamanho - 1] == '\n')
  {
    palavra[tamanho - 1] = '\0';
    --tamanho;
  }

  unsigned int nvogais = conta(palavra);

  printf("Existem %d caracteres\n", tamanho);
  printf("Existem %d vogais.\n", nvogais);
  printf("A porcentagem de vogais e %.2f", (float) nvogais / tamanho);

  return 0;
}

o site nao reconhece (parenteses reto) i (parenteses reto)

Link to comment
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
×
×
  • Create New...

Important Information

By using this site you accept our Terms of Use and Privacy Policy. We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue.