viciado Postado Janeiro 9, 2009 Denunciar Share Postado Janeiro 9, 2009 O Beraldo já resolve o número 5. Fiz o número 6, por favor se tiver algum erro ou alguma critica construtiva comentem#include <stdio.h> #include <stdlib.h> #include <string.h> int contar(char str[30]); int main() { char str[30]; printf("Digite uma string \n"); fgets(str, 30, stdin); contar(str); system("PAUSE"); return 0; } int contar(char str[30]){ int i; int count = 0; for(i=0;i<30;i++){ if(str[i] == 'a' || str[i] == 'e' || str[i] == 'i' || str[i] == 'o' || str[i] == 'u'){ count++; } } printf("O numero de vogais e: %d \n",count); }Não consegui fazer o exercicio 7, alguma dica ? Link para o comentário Compartilhar em outros sites More sharing options...
0 Beraldo Postado Janeiro 9, 2009 Denunciar Share Postado Janeiro 9, 2009 (editado) O protótipo de uma função não precisa ter o seu tamanho nem o nome do parâmetro. Logo, basta isto:int contar(char *); Se vocÊ está usando a biblioteca string.h, use a função strlen(). Ir até 29 não faz sentido, uma vez que a string fornecida pode ter somente 5 caracteres, por exemplo. Para um problema assim, switch fica melhor que IF. Ele tam,bém facilita a visualização. Lembre-se de adicionar as vogais maiúsculas, para o programa ficar correto Você definiu contar() como uma função que retorna int, mas não estava retornando nada. O ideal é retornar int e manter a exibição do texto na função main Você inclui stdlib.h, mas não usou nenhuma função dessa biblioteca, então nem precisa incluí-la #include <stdio.h> #include <string.h> int contar(char *); int main() { char str[30]; int vogais; printf("Digite uma string \n"); fgets(str, 28, stdin); vogais = contar(str); printf("Há %d vogais na string %s\n", vogais, str); return 0; } int contar(char *str) { int i, count = 0, size = strlen(str); for(i=0;i<size;i++) { switch (str[i]) { case 'a': case 'A': case 'e': case 'E': case 'I': case 'i': case 'O': case 'o': case 'u': case 'U': count++; break; } } return count; }Quanto ao exercício 7, você terá de separar cada um dos nomes. Percorra a string, caractere por caractere, e vá copiando-os para outra string. Ao achar um espaço, copie o próximo conteúdo para outra string. Usar um vetor de strings é uma boa saída. Editado Janeiro 9, 2009 por Beraldo Link para o comentário Compartilhar em outros sites More sharing options...
0 viciado Postado Janeiro 9, 2009 Autor Denunciar Share Postado Janeiro 9, 2009 Amigo não consegui fazer esse exercicio, e se a pessoa tiver nome com 3 strings ou 5. Como vou copiar a string anterior ao espaço para um vetor de string Link para o comentário Compartilhar em outros sites More sharing options...
0 Beraldo Postado Janeiro 9, 2009 Denunciar Share Postado Janeiro 9, 2009 uma saída:#include <stdio.h> #include <string.h> int main() { char nome_completo[100], partes[10][50]; int i, j = 0, nome = 0, size; printf("Digite seu nome completo: "); fgets(nome_completo, 98, stdin); size = strlen(nome_completo); for (i = 0; i < size; i++) { if (nome_completo[i] == ' ' || nome_completo[i] == '\n') { partes[nome][j] = ''; j = 0; i++; nome++; } partes[nome][j] = nome_completo[i]; j++; } for (i = 0; i < nome; i++) { printf("%s\n", partes[i]); } return 0; }A parte mais fácil fica com vocês. Link para o comentário Compartilhar em outros sites More sharing options...
0 viciado Postado Janeiro 24, 2009 Autor Denunciar Share Postado Janeiro 24, 2009 Obrigado Beraldo Link para o comentário Compartilhar em outros sites More sharing options...
Pergunta
viciado
O Beraldo já resolve o número 5. Fiz o número 6, por favor se tiver algum erro ou alguma critica construtiva comentem
Não consegui fazer o exercicio 7, alguma dica ?
Link para o comentário
Compartilhar em outros sites
4 respostass a esta questão
Posts Recomendados