Ir ao conteúdo
  • Cadastre-se

Midori

Membro Pleno
  • Posts

    3.572
  • Cadastrado em

  • Última visita

Tudo que Midori postou

  1. Você pode resolver isso com os operadores bit-a-bit. Se consultar a tabela ASCII, verá que a única diferênça entre maiúsculas e minúsculas é no quinto bit. Logo, podemos fazer um OR do quinto bit com 1 para deixar a letra minúscla e depois um AND do quinto bit com 0 nas primeiras letras. int main(){ int i; char frase[20]; printf("Escreva a frase: "); scanf("%[^\n]", frase); for(i = 0; i < strlen(frase); i++){ frase[i] |= (1<<5); if(!i || frase[i - 1] == ' ') frase[i] &= ~(1<<5); } printf("\nFrase convertida = %s\n", frase); return 0;}
  2. Como esse tópico está duplicado, postei a resposta no tópico original, http://forum.clubedohardware.com.br/forums/topic/1091247-como-gravar-uma-matriz-de-tipo-float-em-um-arquivo-txt/#entry5982595
  3. Para gravar informações em arquivos use as funções fwrite ou fprintf
  4. O código está muito bagunçado. Você devia usar a tag code antes de postar. Acontece que você declarou float m e está tratando essa variável se fosse uma matriz. Você parece estar fazendo confusão entre float m[100][50] declarada na função matriz com float m declarada na função Arquivo.
  5. A parte que manipula as funções de registro estão ok. Mas como o seu programa se trata uma aplicação Windows, use WinMain como função principal ao invés de main. E remova esse printf e system("pause")... Por exemplo int WINAPI WinMain(HINSTANCE hInstance, HINSTANCE hPrevInstance, LPSTR lpszCmdLine, int nCmdShow){ /* funções que manipulam o registro */ MessageBox(NULL, "Ola, me iniciei!", "OLA", MB_OK); return 0;} Além disso, quando você criar o projeto, deve escolher um para aplicação Windows e não para console.
  6. Os scanfs estão errados. Da forma que você fez, a função está recebendo apenas um argumento string. E essa função deve receber dois parâmetros: o primeiro é uma string com o formato e o segundo é o endereço da variável
  7. No Windows, por exemplo, você pode procurar material sobre as APIs, mas se não quiser programar diretamente com elas procure sobre a biblioteca MFC (Microsoft Foundation Class Library) do Visual C++ ou VCL (Visual Component Library) do C++ Builder. Ou então pode procurar sobre as bibliotecas free e portáveis, como Qt, GTK, etc.
  8. O post acima está contribuindo para deixar os usuários mal-acostumados (não estou falando de alguém em particular).... A moderação costuma apagar esse tipo de post (já tive post apagado por esse motivo), já que tem gente que simplesmente entra no fórum para pedir programas prontos e não aprendem nada (muitos nem voltam para dizer se o programa resolveu o problema) e ficam achando que todos farão tudo por eles sempre. O mínimo que se espera de quem cria um tópico, é que demonstre que tentou fazer.
  9. Já postaram essa dúvida nesse tópico http://forum.clubedohardware.com.br/forums/topic/1090397-c-exerc%C3%ADcio-matriz-via-argumento/#entry5977900 Veja se ajuda
  10. Basta fazer uma pequena alteração no código int main(){ string palavra; bool existe = false; int i; char letra1; getline(cin, palavra); cin >> letra1; for(i = 0; i < palavra.length(); i++) if(palavra[i] == letra1){ cout << i + 1 << endl; existe = true; } if(existe == false) cout << -1 << endl; return 0;}
  11. Deu erro pois o valor de retorno não é do mesmo tipo da função. Mas se você quer apenas exibir -1, hão há necessidade de criar uma função, você pode fazer assim: #include <iostream>#include <string>using namespace std;int main(){ string palavra; bool existe = false; int i; char letra1, letra2; getline(cin, palavra); cin >> letra1 >> letra2; for(i = 0; i < palavra.length(); i++) if(palavra[i] == letra1){ palavra[i] = letra2; existe = true; } if(existe == false) cout << -1 << endl; else cout << palavra << endl; return 0;}
  12. Tem razão, nesse caso o meu post acima não se aplica.
  13. Não faz sentido usar return nesse else. O return é usado para encerrar a função e retornar um valor. Logo, basta uma condição de "palavra != letra", para terminar o programa. Já que esse return está associado a função main. O ideal é você criar outra função e colocar return -1 no final, caso ele não encontre nenhuma letra na string.
  14. Como assim? Você não quer que apareça, por exemplo, "C:\"? E apenas os resultados de printf?
  15. O erro está nessa linha: palavra[i]==letra2;Use apenas um '=', que é o operador de atribuição.
  16. Você pode alocar dinamicamente. Ou criar um array de comprimento variável. scanf("%d", &linhas);scanf("%d", &colunas);int v[linhas][colunas];
  17. Então você deve ter alterado alguma coisa, porque não há nenhum erro no código que eu postei.
  18. Meu código ficou assim #include <stdio.h>#define MAX 10int main(){ int valor, existe, vetor[MAX]={0}, i = 0, n; while(i < MAX){ printf("Valor: "); scanf("%d", &valor); for(n = existe = 0; n < i; n++) if(vetor[n] == valor) existe = 1; if(existe) printf("o valor %d ja existe\n", valor); else vetor[i++] = valor; } printf("\nVetor:\n\n"); for(i = 0; i < MAX; i++) printf("%d\n", vetor[i]); return 0;}
  19. O problema é que você já está armazenando o valor diretamente no vetor. Use outra variável para isso e antes de armazenar o valor da variável no vetor, faça a verificação.
  20. A dica do Mauro é bem simples de ser aplicada. Ele criou uma string, onde o terceiro índice deverá receber o valor (char) da precisão desejada.

Sobre o Clube do Hardware

No ar desde 1996, o Clube do Hardware é uma das maiores, mais antigas e mais respeitadas comunidades sobre tecnologia do Brasil. Leia mais

Direitos autorais

Não permitimos a cópia ou reprodução do conteúdo do nosso site, fórum, newsletters e redes sociais, mesmo citando-se a fonte. Leia mais

×
×
  • Criar novo...