Ir para conteúdo
Fórum Script Brasil
  • 0

Alguém pode me ajudar com script a seguir?


FEBRAZ

Pergunta

Faça um programa, utilizando a linguagem C, que realize as tarefas abaixo:

1. Exibir uma mensagem para o usuário entrar com o primeiro número (ponto flutuante);

2. Exibir uma mensagem para o usuário entrar com o segundo número (ponto flutuante);

3. Exibir uma mensagem para o usuário entrar com um caractere da operação desejada:

A – Adição M – Multiplicação

4. Realizar a operação desejada entre os dois números e somar com o valor anterior enquanto o valor seja menor ou igual a 10000.

5. Mostrar o número de operações realizadas enquanto o resultado seja menor ou igual a 10000.

 

Meu script:

#include <stdio.h>
#include <stdlib.h>

float num1,num2,result;
char ope;
int x;

int main(int argc, char *argv[]) {
    
    printf("\nDigite um valor qualquer:");
    scanf("%f",&num1);
    printf("\nDigite um segundo valor qualquer:");
    scanf("%f",&num2);
    printf("\nDigite a primeira letra da sua operacao (a/m):");
    scanf("%s",&ope);
    
    printf("\nnum1 %.2f  num2 %.2f  ope %c",num1,num2,ope);
    
    for(x=0;result<=10000;x++){
        
        if(ope=="a"){
            
            printf("\nindice %d  result %f",x,result);
            
            result=(num1+num2)+result;
            
        }
        
        if(ope=="m"){
            
            printf("\nindice %d  result %f",x,result);
            
            result=(num1*num2)+result;
                        
        }
        
    }
    
    return 0;
}    

OBS: estou utilizando o DevC++.

Sintomas apresentado:

Ele para nessa linha "printf("\nnum1 %.2f  num2 %.2f  ope %c",num1,num2,ope);  " e não roda o for. 

 

Alguém saberia o motivo?

Link para o comentário
Compartilhar em outros sites

1 resposta a esta questão

Posts Recomendados

  • 0

Olá, então percebo primeiro que variável ope não é declarada array!

7 horas atrás, FEBRAZ disse:

char ope;

Por consequência, a função de leitura/gravação extrapola o limite da variável.

7 horas atrás, FEBRAZ disse:

scanf("%s",&ope);

 

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

 

Link para o comentário
Compartilhar em outros sites

Participe da discussão

Você pode postar agora e se registrar depois. Se você já tem uma conta, acesse agora para postar com sua conta.

Visitante
Responder esta pergunta...

×   Você colou conteúdo com formatação.   Remover formatação

  Apenas 75 emoticons são permitidos.

×   Seu link foi incorporado automaticamente.   Exibir como um link em vez disso

×   Seu conteúdo anterior foi restaurado.   Limpar Editor

×   Você não pode colar imagens diretamente. Carregar ou inserir imagens do URL.



  • Estatísticas dos Fóruns

    • Tópicos
      152,1k
    • Posts
      651,8k
×
×
  • Criar Novo...