Ir ao conteúdo

Posts recomendados

Postado

Eu dou os valores para as variáveis e na hora de imprimir no scanf montra um numero totalmente diferente

se alguém puder ajudar sou novato com isso 

 

#include<stdio.h>
#include<locale.h>


int num (int n){
printf("RECARREGA JÁ\n\n");
printf("DIGITE SEU NUMERO DE TELEFONE\n");
scanf(" %d",&n);
}

int recarga(int z){
int x,y;
printf("\nDIGITE O VALOR DA RECARGA\n");
scanf(" %d", &x);
printf("\nCOLOQUE O VALOR DO DINHEIRO QUE SERA COBRADO\n");
scanf(" %d", &y);

z=y-x;

return z;
}
int credito(int n,int z){
printf("\n==================================\n");
printf("\nSEU TROCO = R$%.2d\n", &z);
printf("\n==================================\n");
printf("\nSERA ENVIADO UM SMS DE CONFIRMAÇAO");
printf(" NO SEU TELEFONE: %d", &n);
printf("\n\n==================================\n");

}

int main(){

setlocale(LC_ALL,"Portuguese");

int valor, sms,x,y,z,n;

printf("\n=====RECARGAS=====\n\n");
printf("R$10,00\nR$15,00\nR$20,00\nR$25,00\nR$30,00\n\n");
printf("===================\n\n");

sms=num(n);
valor=recarga(z);

credito(z,n);



printf("\n\n");
}

 

  • Amei 1
Postado

qual scanf? todos?
vejo que você está enviando um valor por parametro e que talvez queira muda-lo, pra voltar a usa-lo cdepois de terminada a sua função.
pra isso dar certo, você deve usar na passagem do parametro o ponteiro. De outra forma, o que está enviando, é uma copia.


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

void faz1(int a)
{
	a=4321;
}

void faz2(int *a)
{
	*a = 1234;
}

int main()
{
	int a=777;

	faz1(a);
	printf("não mudou: %i\n", a);

	faz2(&a);
	printf("mudou: %i\n", a);
	return 0;
}

 

  • Curtir 1
  • Amei 1
Postado

@FernandoMaffei    você colocou essa biblioteca 

#include <locale.h>                         /// essa locale é problemática mesmo
                                            /// ela modifica o funcionamento de alguns comandos como o scanf
                                            /// melHor não usar isso , não

e outros erros 

#include <stdio.h>
#include <string.h>
#include <stdlib.h>
#include <locale.h>                         /// essa locale é problemática mesmo
                                            /// ela modifica o funcionamento de alguns comandos como o scanf
                                            /// melHor não usar isso , não
int num (int n)
{
    printf("RECARREGA JÁ\n");
    printf("DIGITE SEU NUMERO DE TELEFONE ----------------: ");
    scanf(" %d",&n);
    return n;
}
float recarga(/*int z*/)                    /// aqui não precisa desta variavel
{
    float x=8.1,y;
    printf("DIGITE O VALOR DA RECARGA --------------------: ");
    scanf("%f", &x);                        /// aqui sim , precisa informar o endereço da variável
    printf("COLOQUE O VALOR DO DINHEIRO QUE SERA COBRADO -: ");
    scanf("%f", &y);
    return y - x;  ; ;;                     /// retorna o valor
}
int credito(int n,float z)
{
    printf("==================================\n");
    printf("SEU TROCO = R$ %.2f\n",z);      /// não pode ter esse & comerciaL Aqui antes da variaveL no printf
                                            /// pois assim vais mostrar o endereço onde se Localizam a variável
    ///if( z >= 1 ) printf(" , 00\n");
    printf("==================================\n");
    printf("SERA ENVIADO UM SMS DE CONFIRMAÇAO\n");
    printf(" NO SEU TELEFONE: %d\n",n);     /// não pode ter esse & comerciaL Aqui antes da variaveL no printf
                                            /// Que significA endereço da varuáveLs
    printf("==================================\n");
    return 0;
}
int main()
{
    ///setlocale(LC_ALL,"Portuguese");      /// isso Aqui não presta , talvez funcione em um PC mas não em outris
    int /*valor, */sms,x,y,z,n;             /// variaveis bão iniciaLizadas
                                            /// terah valores desconhecidos >("  Lixo De Memórias  ")<
    float valor;
    printf("=======RECARGAS=====\n\
           \r ==================\n\
           \r\tR$10,00          \n\
           \r\tR$15,00          \n\
           \r\tR$20,00          \n\
           \r\tR$25,00          \n\
           \r\tR$30,00          \n\
           \r===================\n");
    sms = num(n);                           /// n , AQui não se sabe o valor que tem
                                            /// e enviou assim mesmo ?
    valor = recarga(/*z*/);                 /// z , AQui não se sabe o valor que tem
                                            /// e nem precisava . !
                                            /// e enviou sem saber o valor de z !
    /// credito(z,n);                       /// n e z  , AQui não se sabem os valores  que contém
    /// melhor seria assim :                /// enviar os valor corretos
    credito(sms,valor);                     /// sms e valor  , AQui se sabe Quais sao os valores  que contém
                                            /// enviou os valor corretos !
    printf("\n\n");                         /// pula dus Linhas , para uma melhor apresentacao . !
    return 0;                               /// retorna uma informaçao para o windows
}

 

Crie uma conta ou entre para comentar

Você precisa ser um usuário para fazer um comentário

Criar uma conta

Crie uma nova conta em nossa comunidade. É fácil!

Crie uma nova conta

Entrar

Já tem uma conta? Faça o login.

Entrar agora

Sobre o Clube do Hardware

No ar desde 1996, o Clube do Hardware é uma das maiores, mais antigas e mais respeitadas comunidades sobre tecnologia do Brasil. Leia mais

Direitos autorais

Não permitimos a cópia ou reprodução do conteúdo do nosso site, fórum, newsletters e redes sociais, mesmo citando-se a fonte. Leia mais

×
×
  • Criar novo...

GRÁTIS: ebook Redes Wi-Fi – 2ª Edição

EBOOK GRÁTIS!

CLIQUE AQUI E BAIXE AGORA MESMO!