Hugo1337 Posted November 18, 2016 at 07:58 PM Report #600697 Posted November 18, 2016 at 07:58 PM (edited) /*faça com que receba na funcao main() 2 valores inteiro. Escreva uma funcao para cada operacoes aritmeticas e passe como parametro os 2 valores recebidos na funcao main(). Retorne os resultados usando o comando return e imprima-os no video na funcao main().*/ float divi(a,b); main() { int a,b,c; float d; printf("Digite o 1o numero:"); scanf("%d", &a); printf("\nDigite o 2o numero:"); scanf("%d", &b); c=somar(a,b); printf("\n Soma:%d",c); c=sub(a,b); printf("\nSubtrair: %d",c); c=mult(a,b); printf("\nMultiplicar: %d",c); d=divi(a,b); printf("\nDividir: %f",d); } int somar(a,b) { int c=a+b; return(c); } int sub(a,b) { int c=a-b; return(c); } int mult(a,b) { int c=a*b; return(c); } float divi(a,b) { float d=(float)a/(float)b; return(d); } /*Até ai tudo bem, mas não sei Reescrever esse codigo para receber via teclado n valores. Os n valores nao sao definidos previamente, sei que usa um while(1) { Comandos}, o que deve ser feito é receber um numero, receber outro e ai realizará as 4 operações instantaneamente, receber outro numero e realizará de forma acumulada e assim vai indo*/ Edited November 19, 2016 at 10:31 AM by pwseo syntax highlight
HappyHippyHippo Posted November 18, 2016 at 09:31 PM Report #600704 Posted November 18, 2016 at 09:31 PM o teu enunciado não pede o que tens em comentário no final IRC : sim, é algo que ainda existe >> #p@p Portugol Plus
PsySc0rpi0n Posted November 18, 2016 at 10:03 PM Report #600709 Posted November 18, 2016 at 10:03 PM (edited) Eu começava por um algoritmo básico textual antes de começar logo com código: 1º - Receber 2 valores pela linha de comandos (se não sabes fazer, pesquisa no Google que deve aparecer) 2º - Verificar que realmente foram enviados 2 valores pela linha de comandos. Se não foram enviados 2 valores, termina o programa e informa o user que deve inserir 2 valores! 3º - Escrever as funções para cada operação aritmética e devolver o resultado da operação de volta para a função main. 4º - Apresentar os resultados devolvidos à função main na consola. 2 hours ago, Hugo1337 said: /*Até ai tudo bem, mas não sei Reescrever esse codigo para receber via teclado n valores. Os n valores nao sao definidos previamente, sei que usa um while(1) { Comandos}, o que deve ser feito é receber um numero, receber outro e ai realizará as 4 operações instantaneamente, receber outro numero e realizará de forma acumulada e assim vai indo*/ O enunciado não pede 'n' valores... Pede apenas 2. Aqui, até eu posso dizer: não compliques! Edited November 18, 2016 at 10:04 PM by PsySc0rpi0n Kurt Cobain - Grunge misses you Nissan GT-R - beast killer
Hugo1337 Posted November 19, 2016 at 05:52 PM Author Report #600713 Posted November 19, 2016 at 05:52 PM Vocês dois não entenderam... o código que fiz é o exercicio 1 corrigido, agora devo fazer com que o programa peça n valores(Que nao sao definidos previamente), e nao sei como fazer isso.
PsySc0rpi0n Posted November 19, 2016 at 06:02 PM Report #600715 Posted November 19, 2016 at 06:02 PM 8 minutes ago, Hugo1337 said: Vocês dois não entenderam... o código que fiz é o exercicio 1 corrigido, agora devo fazer com que o programa peça n valores(Que nao sao definidos previamente), e nao sei como fazer isso. Mas o código, que tu dizes corrigido, não reflecte o que foi pedido no enunciado apresentado. Esse código não recebe dois valores na função main! Kurt Cobain - Grunge misses you Nissan GT-R - beast killer
HappyHippyHippo Posted November 19, 2016 at 07:05 PM Report #600716 Posted November 19, 2016 at 07:05 PM 1 hour ago, Hugo1337 said: Vocês dois não entenderam... o código que fiz é o exercicio 1 corrigido, agora devo fazer com que o programa peça n valores(Que nao sao definidos previamente), e nao sei como fazer isso. o problema não e que não tenhamos percrbido. O problema e que o problema não foi apresentado de forma clara e suficiente para ser respondido IRC : sim, é algo que ainda existe >> #p@p Portugol Plus
pwseo Posted November 19, 2016 at 07:27 PM Report #600717 Posted November 19, 2016 at 07:27 PM 1 hora atrás, Hugo1337 disse: Vocês dois não entenderam... o código que fiz é o exercicio 1 corrigido, agora devo fazer com que o programa peça n valores(Que nao sao definidos previamente), e nao sei como fazer isso. Reformula a tua questão. Já reparaste que colocaste a tua questão no final de um excerto de código? Isso é um sinal de alarme para ninguém pegar na tua dúvida. Eu próprio só vi que tinhas lá algo no final do código porque li o que foi dito pelo @HappyHippyHippo. Posto isto... o que tentaste até agora?
PsySc0rpi0n Posted November 19, 2016 at 09:26 PM Report #600719 Posted November 19, 2016 at 09:26 PM Mas uma vez que o OP disse que já tinha a solução para a parte de cima do enunciado, fica aqui a minha sugestão: #include <stdio.h> #include <stdlib.h> int OperSoma(int pvalor1, int pvalor2); int OperSubtrai(int pvalor1, int pvalor2); int OperMultiplica(int pvalor1, int pvalor2); float OperDivide(int pvalor1, int pvalor2); int main(int argc, char** argv){ if(argc < 2){ printf("Tem que inserir dois valores!\n"); printf("Usage: %s <valor1> <valor2>\n", argv[0]); exit(-1); } int valor1 = atoi(argv[1]); int valor2 = atoi(argv[2]); printf("Resultado da Soma: %d\n", OperSoma(valor1, valor2)); printf("Resultado da Subtracção: %d\n", OperSubtrai(valor1, valor2)); printf("Resultado da Multiplicação: %d\n", OperMultiplica(valor1, valor2)); if(valor2) printf("Resultado da Soma: %.2f\n", OperDivide(valor1, valor2)); else printf("Não pode dividir por zero!\n"); return 0; } /* **Funções que executam as operações pretendidas */ int OperSoma(int pvalor1, int pvalor2){ return pvalor1 + pvalor2; } int OperSubtrai(int pvalor1, int pvalor2){ return pvalor1 - pvalor2; } int OperMultiplica(int pvalor1, int pvalor2){ return pvalor1 * pvalor2; } float OperDivide(int pvalor1, int pvalor2){ return 1.0 * pvalor1 / pvalor2; } Kurt Cobain - Grunge misses you Nissan GT-R - beast killer
Flinger Posted November 22, 2016 at 10:46 AM Report #600757 Posted November 22, 2016 at 10:46 AM Eu interpreto o problema de outra forma, PsyScorpion. Acho que o que ele quer é que depois de fazer as operações com os 2 primeiros argumentos, continuar a ler mais valores e a fazer as operações tendo como operandos o valor anteriormente calculado e o novo valor lido. Qualquer coisa como: int soma =0; int operando; scanf("%d",&operando); soma = operando; while (1) { scanf("%d",&operando); soma = somar(soma,operando) } Está aqui a ideia básica, para uma operação. De qualquer forma, quando existe mais do que uma interpretação, é sinal que não expuseste o problema claramente, e uma correcta formulação da dúvida é meio caminho andado para se ter uma resposta útil.
PsySc0rpi0n Posted November 22, 2016 at 11:09 AM Report #600759 Posted November 22, 2016 at 11:09 AM @Flinger, pois, talvez. Eu pelo que li do enunciado onde diz "faça com que receba na funcao main() 2 valores inteiro." eu vejo que deve receber os parâmetros pela linha de commandos. A única forma que eu conheço de a função main receber parâmetros é pelo argc/argv... Por isso dei aquela sugestão! Mas se calhar estás certo, @Flinger. O OP também nunca mis disse nada por isso, já se deve ter desenrascado! Kurt Cobain - Grunge misses you Nissan GT-R - beast killer
Recommended Posts
Create an account or sign in to comment
You need to be a member in order to leave a comment
Create an account
Sign up for a new account in our community. It's easy!
Register a new accountSign in
Already have an account? Sign in here.
Sign In Now