Ir para conteúdo
Fórum Script Brasil

britivaldo

Membros
  • Total de itens

    199
  • Registro em

  • Última visita

3 Seguidores

Sobre britivaldo

  • Data de Nascimento Novembro 7

Perfil

  • Gender
    Male

Últimos Visitantes

1.998 visualizações

britivaldo's Achievements

0

Reputação

  1. Olá, então percebo primeiro que variável ope não é declarada array! Por consequência, a função de leitura/gravação extrapola o limite da variável. Veja o exemplo: /* OPERADOR * Solicitar informacao no formato caractere */ printf("%s", "\nDigite operador [A - Adic M - Mult] > "); /* ler-gravar na memoria o valor 1 caractere */ int ok_operador = scanf(" %c", &operador); assert(("Falha ao gravar operador.", ok_operador == 1)); Observe a strings de formato no primeiro argumento da função scanf (" %c", …), quando escrito assim, os processos ignoram caracteres não gráficos (espaço branco, nova linha, etc.) e grava o caractere seguinte. — Uma interpretação do exercício sugere que o programa continua solicitação de informações (números e operadores) enquanto o acumulo dos resultados é menor ou igual a 10000.0; entende-se que tudo processo está em um bloco de loop, exceto a printf que exibirá a quantidade de operações antes de acumular 10000.0; Ex.: #include <stdio.h> #include <assert.h> /* Exercício * * Fonte * Autor: @FEBRAZ Forum SCRIPT BRASIL * https://forum.scriptbrasil.com.br/topic/218153- * algu%C3%A9m-pode-me-ajudar-com-script-a-seguir/ */ int main(int argc, char *argv[]) { float numero1 = 0.f, numero2 = 0.f, resultados = 0.f; char operador = 0; int qtd_operacoes = 0; do { // Entradas e o processamento [operacoeso e contagem ] ficam aqui /* NUMERO 1 * solicitar informacao no formato numerico e flutuante */ /* ler-gravar na memoria o valor real do usuario */ /* NUMERO 2 * solicitar informacao no formato numerico flutuante */ printf("%s", "\nDigite numero real [ex.: 3.44] > "); /* ler-gravar na memoria o valor real do usuario */ /* OPERADOR * solicitar informacao no formato caractere */ /* ler-gravar na memoria o valor 1 caractere do usuario */ /* PROCESSAMENTO * Acumular resultados enquanto menor ou igual 10000.0 */ } while (resultados <= 10000.0f); /* INFORMACAO * Exibir a quantidade de operacoes relalizadas */ printf("%s%d", "\n#Total de operacoes realizadas: ", qtd_operacoes); return(0); } //Fim do Programa
  2. Para excluir dúvidas, sugiro dar, pelo menos, um exemplo ou ilustração dessa situação, porque aparenta trivial; confunde-se com quociente [inteiro].
  3. Olá! @marimariiii, em "\nlapis %12.2f", os números depois de % dizem para escrever no máximo sua saída numérica com 12 caracteres e reservar 2 destes na apresentação para fração de decimais, com tudo à direita. Por exemplo: O número 10 apresentará 10,00; número 12,234390 apresentará 12,23. C'11 #include <stdio.h> int main() { printf("Exemplo~"); double doub = 0.0; scanf("%lf",&doub); printf("|%12.2f|",doub); return 0; }
  4. Olá, @4ng3lo: Geralmente acontece quando se proíbe o software grava/lê segmentos de memória que não lhes pertence. C.: int buscarProduto(Produto* produtos, const char* nome_Produto){ int encontrado = 0; while(produtos != NULL){ /*-[!] Seguido pela programação de cadastro para produtos, o arranjo produtos não garante o produto nulo. Enquanto irregularmente continua até uma falha-*/ if(strcmp((produtos)->nome, nome_Produto)){ }else{ encontrado = 1; break; } produtos++; } return encontrado; } — Siga o raciocínio: A exceção é o parâmetro nulo (endereço 0), isto é, para valores diferentes de 0 seu laço 'while' continua até uma falha, porque nunca será = 'null'. Suponho que, confundiu-se entre duas estratégias de listar dados [os arranjos e os nós]; sendo didático, escolha arranjos [vetores] e efetue (você mesmo) a correção na programação.
  5. Olá, @gustavoibiapinafh: Note em tua função que, os argumentos são respectivamente um destino para os dados [*buffer] e quantidade de bytes que suportam no destino ['lenght']. — Quando invocar essa função atribua parâmetros correspondentes aos tipos dos parâmetros na função. C.: Não compara literais strings diretamente/declaradamente. char escala[50]; double fahrenheit, celsius; printf("Voce vai digitar a temperatura em qual escala(C/F)?: "); ler_texto(escala, sizeof escala); /*-[!] Fiz correção de parametros-*/ /*-[!] if ("escala = "F"){ Impossivel declaradamente comparar strings, usa-se uma função na biblioteca string.h -*/ if () { printf("Digite a temperatura: "); scanf("%lf", &fahrenheit); celsius = (fahrenheit - 32) / 1.8; printf("Temperatura equivalente em celsius: %.2f", celsius); } Sendo didático, elabore (você mesmo) tua correção.
  6. Ola tudo bem, espero que esteja bem. Então, é difícil associar a construção/código acima com o que diz o enunciado. Para responder a questão é necessário observar/ler: função rand da biblioteca stdlib.h função com algoritmo de ordenação, recomendo insert sort porque é um fácil de implementar.
  7. Ainda é uma pergunta subjetiva, seja mais específico, contribuiria se demostrar o problema com exemplos de entrada e saída.
  8. SETLOCALE Olá, tudo bem? Espero que esteja bem. A função setlocale mais os argumentos LC_ALL, 'Portuguese' alteram os padrões C, em específico, o formato do dado real (flutuante ou dobro). Antes de chamar a função considera o (.) ponto o seu separador de inteiro e fração após chamada passa a considerar (,) vírgula. Veja Então Essa mudança, no entanto, tem efeito somente para os inputs|outputs. Isso é, a sintaxe c permanece com separação padrão: por (.) ponto. Exemplo #include"stdio.h" #include"locale.h" //setlocale LC_ALL localeconv struct lconv int main(void){ // Demonstracao dos efeitos na entrada com uso da funcao selocale com os argumentos // LC_ALL e "Portuguese" struct lconv * pattern = localeconv(); printf("Entre com valor real(d%sdd)\n",pattern->decimal_point); double valor0 = 0.0; scanf("%lf",&valor0); printf("Valor0: %f\n",valor0); puts(setlocale(LC_ALL,"pt_BR.UTF-8")); // altera os padroes c para Portuguese pattern = localeconv(); printf("Entre com valor real(d%sdd)\n",pattern->decimal_point); double valor1 = 0.0; scanf("%lf",&valor1); printf("Valor1: %f\n",valor1); puts("Fim da demonstracao"); return 0; } Se reler a documentação dessa função terá mais informações para determinar a melhor solução do problema. 🙂
  9. Olá, refatore|use o operador condicional (ternário), pois não existem mudanças de fluxo e sim seleção de valor padrão. Veja: #include"iostream" using namespace std; int main(void){ int codigo; cout<<"Digite o codigo dos produto:\n"; cin>>codigo; int qtd; cout<<"Digite a quantidade comprada:\n"; cin>>qtd; double valor = (codigo==1001) ? 5.32: (codigo==1324) ? 6.45: (codigo==6548) ? 2.37: (codigo==1987) ? 5.32: (codigo==7623) ? 6.45:0.00; if(valor>0.00){ cout<<"Total: $"<<valor*qtd<<endl; } else{ cout<<"Error!"<<endl; } return 0; } Se nenhum dos códigos na instrução ternária resultar VERDADEIRO, o valor 0.00 será atribuído à total. Em seguida uma verificação de total: a instrução decide que valor não positivo é um Error! 🙂
  10. Olá, tudo bem? Seja bem-vindo ao fórum! Para auxiliar a discussão na melhor forma, descrevas seu objetivo, exponhas quais eram|são as etapas|rotinas|operações do programa e os valores ideais de entrada e a saída. Caso seja um exercício, compartilhas 'print screen' do enunciado, descrevas as etapas para solução ou assunto estudado.
  11. Ola, tudo bem com você? Seja bem-vindo ao fórum. Para ajudar na melhor maneira possível, preciso que me diga quais assuntos estudou antes do exercício para o exercício. 🙂 OK
×
×
  • Criar Novo...