Ir ao conteúdo
  • Cadastre-se
Entre para seguir isso  
Asteca94

Problema com vetores em Dev-C++

Recommended Posts

Olá, sou novato na área, conheço pouco sobre programação e estou com uma dúvida aqui.

Edit@@ Consegui resolver esse problema, tenho outro que encontra no fim do post.

Meu professor pediu para fazer um programa que o usuário informa o número + o DDD e o programa imprime na tela ambos usando um vetor.

O usuário digita apenas os números e, com o printf eu coloco os caracteres: '(', ')', '-'. para ficar +/- assim (34) 3154-8461

Porém, quando o usuário digita um caracter errado (uma letra, por exemplo), o programa dispara um bipe e a letra não é armazenada pelo vetor.

O programa também oferece a escolha de fazer tudo de novo se o usuário quiser informar outro telefone ....

Eu fiz e ficou desse jeito, porém tem 2 erros que o compilador não encherga:

1 - depois do usuario colocar o DDD, o programa imprime um 8 na tela .. WTF??

2 - no final, quando eu escolho fazer tudo de novo e aperto 's'/'S', o programa apenas dá uma "atualizada" na tela e eu não posso fazer nada.

#include <stdio.h>

#include <conio.h>

#include <stdlib.h>

int main()

{

char continuar = 's';

int fone[10], i;

while((continuar=='s')||(continuar=='S'))

{

system("cls");

printf("\n\tDigite seu telefone e seu DDD: (");

for( i = 0 ; i < 2 ; i = i + 1 )

{

while((fone>9)||(fone<0))

{

fone = (int) getch() - 48;

if((fone<0)||(fone>9))

printf("\a");

}

printf("%i",fone);

}

printf(") ");

for( i = 2 ; i < 6 ; i = i + 1 )

{

while((fone>9)||(fone<0))

{

fone = (int) getch() - 48;

if((fone<0)||(fone>9))

printf("\a");

}

printf("%i",fone);

}

printf("-");

for( i = 6 ; i < 10 ; i = i + 1 )

{

while((fone>9)||(fone<0))

{

fone = (int) getch() - 48;

if((fone<0)||(fone>9))

printf("\a");

}

printf("%i",fone);

}

printf("\n\tSeu DDD é: %i%i",fone[0],fone[1]);

printf("\n\tSeu telefone é: %i%i%i%i%i%i%i%i",fone[2],fone[3],fone[4],fone[5],fone[6],fone[7],fone[8],fone[9]);

printf("\n\n\tDeseja inserir outro numero ?\n\ts para sim\n\tn para nao\n\t ");

continuar = getche();

}

return 0;

}

Como eu disse anteriormente.. Sou leigo no assunto também.. Não conheço ponteiro ainda e nem múltiplas bibliotecas.

Tentem me explicar do jeito mais básico possível rsrsrs

e Eu uso o programa Dev-C++

Edit @@:

Galera, consegui fazer o programa rodar. Tentei e tentei até conseguir. Eu só tinha que dar um valor para fone antes de começar o while e pronto. ^^

---

Só que agora tenho outro problema, um mais difícil.

O exercício pede que eu face um programa que pede para o usuário digitar um número e o programa imprime na tela o número decomposto com múltiplos de 10, exemplo:

Usuário digita: 435

Programa imprime: 4*10^2 + 3*10^1 + 5*10^0

Obrigado rs

Compartilhar este post


Link para o post
Compartilhar em outros sites
Só que agora tenho outro problema, um mais difícil.

O exercício pede que eu face um programa que pede para o usuário digitar um número e o programa imprime na tela o número decomposto com múltiplos de 10, exemplo:

Usuário digita: 435

Programa imprime: 4*10^2 + 3*10^1 + 5*10^0

Obrigado rs

#include <cstdlib>
#include <iostream.h>
#include <math.h>

int main()
{
int num, aux;
cout << "Insira o número para ser fatorado: ";
cin >> num;
for (int i = 8; i > 0; i--)
{
if (num >= pow(10,i))
{
for (int j = i; j > 0; j--)
{
aux = trunc(num/pow(10,j));
cout << aux << "*10^" << j << " ";
cout << "+ ";
num = num-trunc(aux*pow(10,j));
}
i = 0;
}
}
cout << num << "*10^0\n";
system ("pause");
return 0;
}

Testado e funcionando. Perceba que ele só funciona até 999999999, pois meu for inicia em 8.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Crie uma conta ou entre para comentar

Você precisar ser um membro 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
Entre para seguir isso  





Sobre o Clube do Hardware

No ar desde 1996, o Clube do Hardware é uma das maiores, mais antigas e mais respeitadas publicações 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

×