Resolvendo exercio em C++ (nivél basico)

1. Resolvendo exercio em C++ (nivél basico)

Kleber de Souza
start107

(usa Linux Mint)

Enviado em 29/09/2016 - 10:06h

Sou programador web e resolvi começar a estudar C, estou fazendo algumas listas que encontrei na internet porem estou com problema com esse exercício alguém poderia ajudar?

Fazer uma função para receber como parâmetros o número da conta de um cliente (inteiro), o nome do cliente (vetor de 30 caracteres) e o saldo do cliente (real) e exibir os dados do cliente em uma única linha de acordo com o seguinte layout:

Número da conta: alinhado à esquerda e com tamanho fixo de 10 (dez) dígitos; Nome do cliente: alinhado à esquerda e com tamanho fixo de 13 (treze) caracteres; Saldo do cliente: alinhado à direita, com tamanho fixo de 7 (sete) posições e, dentre as 7 posições, 2 (duas) posições decimais.


se alguém puder ajudar pelo menos com um norte fico agradecido

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

/*

function void banco(int nuConta, char noClinte[30], double vlSaldo){

}


*/
main (){

int nuConta;
char noCliente[30];
double vlSaldo;



printf("Informe o numero da conta");
scanf("%d", &nuConta);
printf("%010d", nuConta);

printf("Digite seu nome: ");
scanf("%s",noCliente);

printf("O nome armazenado foi: %s", noCliente);

}


  


2. Re: Resolvendo exercio em C++ (nivél basico)

Rodrigo
sn8ker

(usa Debian)

Enviado em 29/09/2016 - 12:27h

  1 #include <stdio.h>
2 #include <stdlib.h>
3
4 int main(void){
5
6 int nuConta;
7 char noCliente[30];
8 float vlSaldo;
9
10 void banco(int nuConta, char noCliente[30], float vlSaldo);
11
12 printf("Digite o número da conta\n");
13 scanf("%i", &nuConta);
14 printf("Digite o nome do cliente\n");
15 scanf("%s", noCliente);
16 printf("Digite o valor do saldo\n");
17 scanf("%f", &vlSaldo);
18
19 banco(nuConta, noCliente, vlSaldo);
20
21 return 0;
22 }
23
24 void banco(int nuConta, char noCliente[30], float vlSaldo){
25
26 printf("\n %-010i \n %-13s \n %5.2f \n", nuConta, noCliente, vlSaldo);
27
28 }



linha 10: Nessa linha a função banco é declarada como void (não retorna nada).

linha 12 - 17: Recebimento do valor das variáveis.

linha 19: Chama a função banco e diz que ela vai receber as variáveis ali descritas.

linha 24: Começo da função. Nela diz que as variáveis da linha 19 se chamarão nuConta , noCliente[30] e vlSaldo( As variáveis tem o mesmo nome nesse caso, porém, poderiam ter nomes diferentes, são variáveis DIFERENTES, por isso elas são declaradas nessa linha.).

linha 26: Imprime na tela as variáveis de acordo com a formatação pedida.




3. Re: Resolvendo exercio em C++ (nivél basico)

Kleber de Souza
start107

(usa Linux Mint)

Enviado em 29/09/2016 - 12:57h

sn8ker escreveu:

  1 #include <stdio.h>
2 #include <stdlib.h>
3
4 int main(void){
5
6 int nuConta;
7 char noCliente[30];
8 float vlSaldo;
9
10 void banco(int nuConta, char noCliente[30], float vlSaldo);
11
12 printf("Digite o número da conta\n");
13 scanf("%i", &nuConta);
14 printf("Digite o nome do cliente\n");
15 scanf("%s", noCliente);
16 printf("Digite o valor do saldo\n");
17 scanf("%f", &vlSaldo);
18
19 banco(nuConta, noCliente, vlSaldo);
20
21 return 0;
22 }
23
24 void banco(int nuConta, char noCliente[30], float vlSaldo){
25
26 printf("\n %-010i \n %-13s \n %5.2f \n", nuConta, noCliente, vlSaldo);
27
28 }



linha 10: Nessa linha a função banco é declarada como void (não retorna nada).

linha 12 - 17: Recebimento do valor das variáveis.

linha 19: Chama a função banco e diz que ela vai receber as variáveis ali descritas.

linha 24: Começo da função. Nela diz que as variáveis da linha 19 se chamarão nuConta , noCliente[30] e vlSaldo( As variáveis tem o mesmo nome nesse caso, porém, poderiam ter nomes diferentes, são variáveis DIFERENTES, por isso elas são declaradas nessa linha.).

linha 26: Imprime na tela as variáveis de acordo com a formatação pedida.



Obrigado pelo seu tempo e disposição em ajudar.
Na sua função estava acontecendo esse erro

In function ‘void banco(int, char*, float)’:
numerotres.cpp:26:75: warning: '0' flag ignored with '-' flag in gnu_printf format [-Wformat=]
printf("\n %-010i \n %-13s \n %5.2f \n", nuConta, noCliente, vlSaldo);
^

Modifiquei o printf para
 printf("\n %010i \n %-13s \n %-5.2f \n", nuConta, noCliente, vlSaldo); 

o arquivo foi compilado
Porem, quando vou preencher eu informo a conta (OK) o nome da pessoa (Marcos pereira filho) o sistema finaliza tudo mostrando os printf assim. o valor do saldo não está aparecendo as 5 casas antes do ponto que você setou %-5.2f :(

Muito obrigado mesmo.

Digite o número da conta
58119
Digite o nome do cliente
Marcos pereira filho
Digite o valor do saldo

0000058119
Marcos
0.00






4. Re: Resolvendo exercio em C++ (nivél basico)

Rodrigo
sn8ker

(usa Debian)

Enviado em 29/09/2016 - 13:22h

Então, só aparece o primeiro nome da pessoa porque quando você da um espaço o C reconhece que acabou a string ali, para consertar isso é um pouco mais complexo, dê uma olhada nessa playlist https://www.youtube.com/playlist?list=PLa75BYTPDNKbPVz_dYVOCSwaOMoyEAPXf, quanto ao saldo, em vez de %5.2f coloque %05.2f e se o nome for simples ou seja sem sobrenome, deve funcionar.


5. Re: Resolvendo exercio em C++ (nivél basico)

Kleber de Souza
start107

(usa Linux Mint)

Enviado em 29/09/2016 - 13:31h

sn8ker escreveu:

Então, só aparece o primeiro nome da pessoa porque quando você da um espaço o C reconhece que acabou a string ali, para consertar isso é um pouco mais complexo, dê uma olhada nessa playlist https://www.youtube.com/playlist?list=PLa75BYTPDNKbPVz_dYVOCSwaOMoyEAPXf, quanto ao saldo, em vez de %5.2f coloque %05.2f e se o nome for simples ou seja sem sobrenome, deve funcionar.


Fiz as alterações e o nome do cliente não está mostrando só os 13 caracteres e o valor não está mostrando os 5

void banco(int nuConta, char noCliente[30], float vlSaldo){
printf("\n %010i \n %-13s \n %05.2f \n", nuConta, noCliente, vlSaldo);
}


Digite o número da conta
58119
Digite o nome do cliente
MarceloPereiraComSobrenomeAqui
Digite o valor do saldo
150

0000058119
MarceloPereiraComSobrenomeAqui
150.00



6. Re: Resolvendo exercio em C++ (nivél basico)

Rodrigo
sn8ker

(usa Debian)

Enviado em 29/09/2016 - 13:40h

Hehe, eu tbm sou novato em C, vou dar uma pesquisada ver se acho como corrigir isso, aí eu te mando kkkk


7. Re: Resolvendo exercio em C++ (nivél basico)





Patrocínio

Site hospedado pelo provedor RedeHost.
Linux banner

Destaques

Artigos

Dicas

Tópicos

Top 10 do mês

Scripts