Flames Posted February 24, 2012 at 02:44 AM Report Share #440964 Posted February 24, 2012 at 02:44 AM Queria que dessem uma olhadela para o seguinte código e me respondam o seguinte (porque este codigo na minha cabeça precisa de uma boa reformulacao entre variaveis de entrada na funcao e saida blabla): Este código necessita de uma boa reformulacao ou estou a imaginar coisas? #include <stdio.h> /* Read a set of values from the user. Store the sum in the sum variable and return the number of values read. */ int read_values(double sum) { int values=0,input=0; sum = 0; printf("Enter input values (enter 0 to finish):\n"); scanf("%d",&input); while(input != 0) { values++; sum += input; scanf("%d",input); } return values; } int main() { double sum=0; int values; values = read_values(sum); printf("Average: %g\n",sum/values); return 0; } Num dos scanf's falta & que é um dos erros para detectar e pensava que ficava por ai quando realmente olho para o codigo e pensei hummmm wrong dead wrong... Link to comment Share on other sites More sharing options...
pedrosorio Posted February 24, 2012 at 04:54 AM Report Share #440967 Posted February 24, 2012 at 04:54 AM Yep. Faltam mais coisas. Neste momento a variável sum é declarada no main, e é alterada na função read_values, mas como sum é local à função read values na função main continuas a ter sum=0, sabes o que tens que fazer para modificar isso? (Uma hipótese seria declarar a variável sum como global, mas a resposta correta tem provavelmente a ver com o argumento da função read_values). Não respondo a dúvidas por mensagem. Link to comment Share on other sites More sharing options...
pmg Posted February 24, 2012 at 10:22 AM Report Share #440984 Posted February 24, 2012 at 10:22 AM O scanf() é notoriamente dificil de usar bem, especialmente quando há erros: vê lá o que acontece se o número introduzido for "dois" (sem as aspas, claro) 😁 Sugestão para melhor tratamento de erros: lê o input com fgets() e usa sscanf() para converter esse input num inteiro. What have you tried? Não respondo a dúvidas por PM A minha bola de cristal está para compor; deve ficar pronta para a semana. Torna os teus tópicos mais atractivos e legíveis usando a tag CODE para colorir o código! Link to comment Share on other sites More sharing options...
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