Ir para conteúdo

Arquivado

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

DaniloTec

Não retorna o valor desejado

Recommended Posts

Boa Tarde a Todos.Fiz um programinha para retornar o signo de uma pessoa, porém, não estou tendo o resultado que quero.Segue o código:#include <stdio.h>#include <stdlib.h>main(){ int dia, mes; char signo[12][20]; "Capricornio"; "Aquario"; "Peixes"; "Aries"; "Touro"; "Gemeos"; "Cancer"; "Leão"; "Virgem"; "Libra"; "Escorpiao"; "Sagitario"; printf("Digite o dia do seu nascimento: "); scanf("%d",&dia); printf("Digite o mes do seu nascimento: "); scanf("%d",&mes); if (mes == 1 && dia > 20) printf("Seu signo e: %c ",signo[1]); else if (mes == 2 && dia > 19) printf("Seu signo e: %c ",signo[2]); else if (mes == 3 && dia > 20) printf("Seu signo e: %c ",signo[3]); else if (mes == 4 && dia > 20) printf("Seu signo e: %c ",signo[4]); else if (mes == 5 && dia > 20) printf("Seu signo e: %c ",signo[5]); else if (mes == 6 && dia > 20) printf("Seu signo e: %c ",signo[6]); else if (mes == 7 && dia > 21) printf("Seu signo e: %c ",signo[7]); else if (mes == 8 && dia > 22) printf("Seu signo e: %c ",signo[8]); else if (mes == 9 && dia > 22) printf("Seu signo e: %c ",signo[9]); else if (mes == 10 && dia > 22) printf("Seu signo e: %c ",signo[10]); else if (mes == 11 && dia > 21) printf("Seu signo e: %c ",signo[11]); else if (mes == 12 && dia > 21) printf("Seu signo e: %c ",signo[12]); system("pause");}O pior é que não esta aparecendo nenhum "printf".Alguém pode me ajudar?Grato!

Compartilhar este post


Link para o post
Compartilhar em outros sites

kra sou iniciante em c++ so que seu problema é bem facil

me corrijam se eu estiver errado mas qdo se usa char por exemplo

char signo[15] pega uma letra em cada [0] em diante n palavra inteira e você pois %c se aparecesse ia aparece so a primeira letra usa %s pra ser a palavra toda eu arrumei e fico assim

#include <stdio.h>#include <stdlib.h>int signo();main(){int dia, mes;char a[15]="Capricornio";char b[15]="Aquario";char c[15]="Peixes";char d[15]="Aries";char e[15]="Touro";char f[15]="Gemeos";char g[15]="Cancer";char h[15]="Leão";char i[15]="Virgem";char j[15]="Libra";char k[15]="Escorpiao";char l[15]="Sagitario"; printf("Digite o dia do seu nascimento: ");scanf("%d",&dia);printf("Digite o mes do seu nascimento: ");scanf("%d",&mes);if (mes == 1 && dia > 20)printf("Seu signo e: %s ",a);if (mes == 2 && dia > 19)printf("Seu signo e: %s ",b);if (mes == 3 && dia > 20)printf("Seu signo e: %s ",c);if (mes == 4 && dia > 20)printf("Seu signo e: %s ",d);if (mes == 5 && dia > 20)printf("Seu signo e: %s ",e);if (mes == 6 && dia > 20)printf("Seu signo e: %s ",f);if (mes == 7 && dia > 21)printf("Seu signo e: %s ",g);if (mes == 8 && dia > 22)printf("Seu signo e: %s ",h);if (mes == 9 && dia > 22)printf("Seu signo e: %s ",i);if (mes == 10 && dia > 22)printf("Seu signo e: %s ",j);if (mes == 11 && dia > 21)printf("Seu signo e: %s ",k);if (mes == 12 && dia > 21)printf("Seu signo e: %s ",l);system("pause");return 0;}

Compartilhar este post


Link para o post
Compartilhar em outros sites

O %c estava errado mesmo, só se usa para ler 1 caracter, para uma cadeia ou string, tanto faz, é %s..

 

voltando ao codigo..

tem outro erro, pois se eu digito dia 10 e mes 1, ou 2, ou 3... ou 12.. ele não fará nada, pois todas as comparações são: se é maior que 20 ou 19..

Uma solução simples é fazer assim:

if ((mes==1 && dia>20) || (mes==2 && dia<19)) no lugar de if (mes == 1 && dia > 20)

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.