Ir para conteúdo

POWERED BY:

Arquivado

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

jcesarbsb

vetor string

Recommended Posts

10) Leia um vetor de 5 posições contendo os caracteres de um numero. Em seguida escreva esse numero po

extenso.

 

Gostaria de solicitar a ajuda de Vcs pois nessa questão consegui chegar ate aqui, se puderem me ajudar e explicar os passos

 

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

int main(int argc, char *argv[])
{
  int vetor [5],i;
  for (i=0;i<5;++i){
  
  printf ("Informe o Número:",i);
  scanf ("%d",& vetor [i]);
 
} 
for (i=0;i<max;i++)
	printf ("%d",  vetor [i]); 

  system("PAUSE");
}

Compartilhar este post


Link para o post
Compartilhar em outros sites

Eu acho que é impossível você pedir o kra um número e fazer o programa escrever ele por extenso, por exemplo:

 

4 987 13

 

e ele retornar

 

quatro, novecentos e oitenta e sete, treze

 

oq acho que o exercício quer propor é você montar uma struct

 

struct numeracao{

char* numero;

}numeros;

 

e montar um array deste struct

 

numeros vetor[5];

 

com isso você consegue armazenar cada nome em cada posição do array

 

Ou posso estar enganado e acabar tendo uma função em C que transforma o numero em string, mas nunca vi nada parecido

Compartilhar este post


Link para o post
Compartilhar em outros sites

bom até da pra fazer + é trabalhoso, no forum tem uns programas q fazem isso, da um find ae!

 

[]'s

Compartilhar este post


Link para o post
Compartilhar em outros sites

Opa quero saber também como fas eu acho que vai usa 5 if.

Eu fis aqui, mais não to conseguindo fazer ele funcionar. alguem pode me ajuda?

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

main(){
	   char p1[30],p2[30],p3[50],p4[50],p5[50];
	   int i=0
	   printf("Digite a primeira frase palavra");
	   fflush(stdin);
	   gets(p1);
	   while(p1[i]!= '/0')
	   {
	   if(p2[i]!=''){
	   ++i;
	   printf("Digite a segunda frase palavra");
	   fflush(stdin);
	   gets(p2);
	   else
	   if(p3[i]!=''){
	   ++i;
	   printf("Digite a terceira frase palavra");
	   fflush(stdin);
	   gets(p3;
	   else
	   if(p4[i]!=''){
	   ++i;
	   printf("Digite a quarta frase palavra");
	   fflush(stdin);
	   gets(p4);
	   else
	   if(p5[i]!=''){
	   ++i;
	   printf("Digite a quinta palavra");
	   fflush(stdin);
	   gets(p5);
	   }
	   }
	   }
	   }
	   printf("%s",p2,p3,p4,p5);
	   system("pause";
	   }

Compartilhar este post


Link para o post
Compartilhar em outros sites

Tava cheio de errinhos bobos, agora é só tentar arrumar a lógica dele

 

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

int main(){
char p1[30],p2[30],p3[50],p4[50],p5[50];
int i=0;
printf("Digite a primeira frase palavra");
fflush(stdin);
gets(p1);
while(p1[i]!= '\0')
{
  if(p2[i]!=' '){
	++i;
	printf("Digite a segunda frase palavra");
	fflush(stdin);
	gets(p2);
  }
  else if(p3[i]!=' '){
	++i;
	printf("Digite a terceira frase palavra");
	fflush(stdin);
	gets(p3);
  }
  else if(p4[i]!=' '){
	++i;
	printf("Digite a quarta frase palavra");
	fflush(stdin);
	gets(p4);
  }
  else if(p5[i]!=' '){
	++i;
	printf("Digite a quinta palavra");
	fflush(stdin);
	gets(p5);
  }
}
printf("%s",p2,p3,p4,p5);
system("pause");
return 0;
}

Ahh e quando for postar código utilize as tags "code" "/code" tocando as aspas por colchetes

Compartilhar este post


Link para o post
Compartilhar em outros sites

Ogora ta rodando mais ele não mostra a terceira posicao a quarta porsicao e quinta

posicao ele vai ter que mostra as 5 posicoes por extenso.

Como resolver isso?

 

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

main(){
char p1[30],p2[30],p3[50],p4[50],p5[50];
int i=0;
printf("Digite a primeira posicao: ");
fflush(stdin);
gets(p1);
while(p1[i]!= '\0')
{
  if(p2[i]!=' '){
	++i;
	printf("Digite a segunda posicao: ");
	fflush(stdin);
	gets(p2);
  }
  else if(p3[i]!=' '){
	++i;
	printf("Digite a terceira posicao: ");
	fflush(stdin);
	gets(p3);
  }
  else if(p4[i]!=' '){
	++i;
	printf("Digite a quarta posicao ");
	fflush(stdin);
	gets(p4);
  }
  else if(p5[i]!=' '){
	++i;
	printf("Digite a quinta posicao");
	fflush(stdin);
	gets(p5);
  }
}
printf("%s %s %s %s %s\n ",p1,p2,p3,p4,p5);
system("pause");
}

Compartilhar este post


Link para o post
Compartilhar em outros sites

Fiz um código sem os laços para te ajudar que funiona, já adianto que o char* é um vetor de caracteres e o malloc você aloca 50 destes na memória

 

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

int main(){
char* p1;
char* p2;
char* p3;
char* p4;
char* p5;
int i=0;

p1 = (char*) malloc(50 * sizeof(char));
p2 = (char*) malloc(50 * sizeof(char));
p3 = (char*) malloc(50 * sizeof(char));
p4 = (char*) malloc(50 * sizeof(char));
p5 = (char*) malloc(50 * sizeof(char));

printf("Digite a primeira frase palavra \n");
scanf("%s",p1);

printf("Digite a segunda frase palavra \n");
scanf("%s",p2);

printf("Digite a terceira frase palavra \n");
scanf("%s",p3);

printf("Digite a quarta frase palavra: \n");
scanf("%s",p4);

printf("Digite a quinta palavra: \n");
scanf("%s",p5);

printf("%s ",p1);
printf("%s ",p2);
printf("%s ",p3);
printf("%s ",p4);
printf("%s\n",p5);

system("pause");
return 0;
}

Compartilhar este post


Link para o post
Compartilhar em outros sites

acabei de fazer aqui mais quando eu digito número 1 ele mostr noventa alguem pode me ajuda.

 

 

#include <stdio.h>

#include <stdlib.h>

#include <string.h>

#define max 20

main () {

 

int vet[5],i,num;

 

char *unidade[]={"um","dois","tres","quatro","cinco","seis","sete","oito","nove"};

char *dezena[]={"vinte","trinta","quarenta","cinquenta","sessenta","setenta","oitenta","noventa"};

char *centena[]={"cento","duzentos","trezentos","quatrocentos","quinhentos","seiscentos","setecentos","oitocentos","novecentos"};

printf ("informe um numero: ");

for (i=0;i<5;++i)

{

scanf ("%d",&vet);

if (num < 10)

{

printf ("%s",unidade[num]);

}

}

}

Compartilhar este post


Link para o post
Compartilhar em outros sites

Trabalhe com resto, aqui no forum tem um exemplo bem parecido com o que voce quer fazer, porem para mostrar por extenso um valor tipo em reais e centavos, achei este que fiz a algum tempo atrás não vou postar o código inteiro pois queremos que aprenda:

 

int main()
{
	   int a, b, c, num;
	   string cent,dez,uni;
	   printf("digite um numero :\n");//Escreve na tela a mensagem digite um numero
	   scanf("%d",&num);//Recebe o numero digitado e o armazena na memoria com nome de num
	  a=num/100;//diz que a variavel a e igual a variavel num dividido por 100
	  num=num%100;//diz que num e igual ao resto da divisao de num dividido por 100
	  b=num/10;// diz que b e igual a num dividido por 10
	  num=num%10;//diz que num e igual ao resto da divisao de num dividido por 10
	  c=num/1;//diz que c e igual a num dividido por 1
Dai voce pode utilizar switch case para verificar e fazer a impressão.

Compartilhar este post


Link para o post
Compartilhar em outros sites

para seu programa você esqueceu que o vetor em C começa da posição zero, portanto, temos que adicionar o zero na primeira posição da unidade.

 

A variável num não estava recebendo valor nenhum.

 

arrumando estes pequenos erros fica:

 

#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#define max 20
int main () {

int vet[5],i,num;

  char* unidade[]={"zero","um","dois","tres","quatro","cinco","seis","sete","oito","nove"};
  char* dezena[]={"vinte","trinta","quarenta","cinquenta","sessenta","setenta","oitenta","noventa"};
  char* centena[]={"cento","duzentos","trezentos","quatrocentos","quinhentos","seiscentos","setecentos","oitocentos","novecentos"};
  printf ("informe um numero: ");

  for (i=0;i<5;++i)
  {
	scanf ("%d",&vet[i]);
	num = vet[i];
	if (num < 10)
	{
	  printf ("%s\n",unidade[num]);
	}
  }
  system("pause");
  return 0;
}

Agora é só tentar ver como vai imprimir as dezenas e centenas. se você usar o sistema do resto como nosso amigo disse, você mata o problema, só toma cuidade que o vinte ta na posição zero, portanto se tentar imprimir 21, vai aparecer quarenta e um, já que a posição 2 do vetor dezenas (dezena(2)) equivale ao quarenta

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.