Jump to content
Fórum Script Brasil
  • 0

Alguém pode me ajudar com script a seguir?


FEBRAZ

Question

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 to comment
Share on other sites

1 answer to this question

Recommended Posts

  • 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 to comment
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Answer this question...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.



  • Forum Statistics

    • Total Topics
      152.1k
    • Total Posts
      651.8k
×
×
  • Create New...