Problema com criação de função em C

3 respostas
T

Estou fazendo um exercicio no qual estamos aprender a fazer e usar funções, o professor passou um que eu nao to conseguindo fazendo exatamente como ele pede, eu nao consigo criar uma funcao com 2 parametros, por exemplo eu queria criar uma assim void novoPreco(float x, int y) sendo que quando eu coloco 2 ele da erro, nao compila, se eu colocar so o float x dentro ele aceita, até onde eu sei era so separar por virgula, mas nao ta funcionando

enunciado - [img]http://img42.imageshack.us/img42/4270/ex1yn.jpg[/img]

foi oq eu fiz, sendo que a funcao ta sendo usada somente caso tenha seguro, eu queria na mesma funcao usar pra calcular tb caso nao tenha seguro, podem me ajudar nisso??

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

void novoPreco(float x){
      
     
      x = x * 1.10;
      printf("Novo Valor do Veiculo: %.2f", x);
     
      
      }

main(){
       char nome[20], veiculo[20], seguro[3], maisBarato[20], clienteCaro[20];
       float preco=0, barato=0, caro=99999999;
       int totalSeguros=0;
       
       for (int i=0; i<4;i++){
       printf("\n        ***IMPORTS CARS LTDA***");
       printf("\n\nNome do Cliente: ");
       scanf("%s", nome);
       printf("\nVeiculo: ");
       scanf("%s", veiculo);
       printf("\nPreco: ");
       scanf("%f", &preco);
       printf("Seguro S/N: ");
       scanf("%s", seguro);
      
       
       if (strcmp(seguro, "s")==0){
       novoPreco(preco); //funcao
       
       }else {
             preco = preco * 0.95;
             printf("novo valor do veiculo: %.2f", preco);
             }
             if (strcmp(seguro, "n")==0 && preco < caro){
             caro = preco;
             strcpy(maisBarato, nome);                                
                                }
             if (strcmp(seguro, "s")==0 && preco < 10.000){
                               totalSeguros++; 
                                }
             if (preco > barato){
                       barato = preco;
                       strcpy(clienteCaro, nome);
                       }
       
       }
       system("cls");
       printf("*** Locadora Motor Batido LTDA ***");
       printf("\n\nVeiculo mais barato que nao tenha seguro: %s", maisBarato);
       printf("\nTotal de Carros com seguro com precos abaixo de 10mil: %d", totalSeguros);
       printf("\nNome do cliente q comprou o carro mais caro: %s", clienteCaro);
       getch();
       
       }

3 Respostas

O

tobiii:
Estou fazendo um exercicio no qual estamos aprender a fazer e usar funções, o professor passou um que eu nao to conseguindo fazendo exatamente como ele pede, eu nao consigo criar uma funcao com 2 parametros, por exemplo eu queria criar uma assim void novoPreco(float x, int y) sendo que quando eu coloco 2 ele da erro, nao compila, se eu colocar so o float x dentro ele aceita, até onde eu sei era so separar por virgula, mas nao ta funcionando

Como você esta criando e usando essa função?

Que erro sendo gerado pelo compilador?

ViniGodoy

Qual mensagem de erro ele dá? Não há nada que impeça você de declarar sua função desse jeito.

T

pessoal, fiquei tentando aqui e descobri oq era, o problema estava na linha 33 do codigo do primeiro posto, oq acontecia era q eu ja tinha passado um valor por parametro pra funcao, porem depois eu tentei criar mais uma variavel pra essa funcao, porem dentro do meu main eu continuava a passar somente um valor pra um argumento, mudei isso, e agora ta funcionando perfeitamente, obrigado a todos pela atenção

veja como ficou

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

void novoPreco(float x, int y){
      
      
      if (y==1){     
      x = x * 1.10;
      printf("Novo Valor do Veiculo: %.2f", x);
      } else {
             x = x * 0.95; 
             printf("Novo Valor do Veiculo: %.2f", x);    
      
      }
}
main(){
       char nome[20], veiculo[20], seguro[3], maisBarato[20], clienteCaro[20];
       float preco=0, barato=0, caro=99999999;
       int totalSeguros=0;
       
       for (int i=0; i<4;i++){
       printf("\n        ***IMPORTS CARS LTDA***");
       printf("\n\nNome do Cliente: ");
       scanf("%s", nome);
       printf("\nVeiculo: ");
       scanf("%s", veiculo);
       printf("\nPreco: ");
       scanf("%f", &preco);
       printf("Seguro S/N: ");
       scanf("%s", seguro);
      
       
       if (strcmp(seguro, "s")==0){
       novoPreco(preco, 1);
        //funcao
       
       }else {
             preco = preco * 0.95;
             printf("novo valor do veiculo: %.2f", preco);
             }
             if (strcmp(seguro, "n")==0 && preco < caro){
             caro = preco;
             strcpy(maisBarato, nome);                                
                                }
             if (strcmp(seguro, "s")==0 && preco < 10.000){
                               totalSeguros++; 
                                }
             if (preco > barato){
                       barato = preco;
                       strcpy(clienteCaro, nome);
                       }
       
       }
       system("cls");
       printf("*** Locadora Motor Batido LTDA ***");
       printf("\n\nVeiculo mais barato que nao tenha seguro: %s", maisBarato);
       printf("\nTotal de Carros com seguro com precos abaixo de 10mil: %d", totalSeguros);
       printf("\nNome do cliente q comprou o carro mais caro: %s", clienteCaro);
       getch();
       
       }
Criado 25 de novembro de 2012
Ultima resposta 26 de nov. de 2012
Respostas 3
Participantes 3