Ir ao conteúdo

Problema com vetores em Dev-C++


Asteca94

Posts recomendados

Postado

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

Postado
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.

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

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...

LANÇAMENTO!

eletronica2025-popup.jpg


CLIQUE AQUI E BAIXE AGORA MESMO!