jcesarbsb 0 Denunciar post Postado Setembro 19, 2008 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
IvanR 0 Denunciar post Postado Setembro 19, 2008 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
quitZAUMMM 18 Denunciar post Postado Setembro 19, 2008 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
IvanR 0 Denunciar post Postado Setembro 19, 2008 Mas estes programas sempre terão um limite, imagino a dor de cabeça fazer isso pq até o 99 tem 28 possibilidades de nomes Compartilhar este post Link para o post Compartilhar em outros sites
Eva.lima 0 Denunciar post Postado Setembro 22, 2008 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
IvanR 0 Denunciar post Postado Setembro 22, 2008 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
Eva.lima 0 Denunciar post Postado Setembro 22, 2008 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
IvanR 0 Denunciar post Postado Setembro 22, 2008 post duplicado Compartilhar este post Link para o post Compartilhar em outros sites
IvanR 0 Denunciar post Postado Setembro 22, 2008 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
Eva.lima 0 Denunciar post Postado Setembro 22, 2008 Rodo certinho as posicões e mostra as 5 posicões muito obrigado mesmo ivanR Compartilhar este post Link para o post Compartilhar em outros sites
Eva.lima 0 Denunciar post Postado Setembro 22, 2008 so uma duvida pra que server esse sizeof(char). Compartilhar este post Link para o post Compartilhar em outros sites
Kandrade 7 Denunciar post Postado Setembro 22, 2008 sizeof é usado para saber o tamanho de um certo tipo de dado. Nesse caso ele retorna o tamanho em bytes que um char ocupa. http://forum.imasters.com.br/public/style_emoticons/default/thumbsup.gif Compartilhar este post Link para o post Compartilhar em outros sites
Eva.lima 0 Denunciar post Postado Setembro 27, 2008 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
Edultra 13 Denunciar post Postado Setembro 27, 2008 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 1Dai voce pode utilizar switch case para verificar e fazer a impressão. Compartilhar este post Link para o post Compartilhar em outros sites
IvanR 0 Denunciar post Postado Setembro 29, 2008 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