Ir ao conteúdo
  • Cadastre-se

Unknown Creature

Membro Júnior
  • Posts

    8
  • Cadastrado em

  • Última visita

Tudo que Unknown Creature postou

  1. @KXSY Cara, eu percebi minha ********** justamente depois que eu fiz esse post, hahahaha! Mas obrigado por tentar ajudar. E respondendo sua pergunta, o comando if ali serve para garantir que sejam selecionados somente números diferentes de zero ou ímpares. Por isso que se p==0 ou p%2==0, a contagem decrementa (i--) em vez de progredir, fazendo com que outro número, que seja ímpar, ocupe aquela posição. Desse jeito a estrutura for só finaliza quando o ponteiro armazenar n valores ímpares e não só n valores quaisquer.
  2. Bom, o programa deve receber e imprimir uma quantidade n de números inteiros ímpares. O problema é que a função de alocação de memória (obrigatória no exercíco por conta do conteúdo estudado) não está funcionando. Os valores são impressos na quantidade certa, porém o conteúdo é sujeira de memória e não os respectivos valores que deveriam ter sido lidos. Abaixo, segue o código: #include <stdio.h> #include <stdlib.h> int main(){ int n, *p, i; printf("Quantidade de numeros: "); scanf("%d", &n); system("cls"); p=(int*)calloc(n,sizeof(int)); if(p==NULL){ printf("Memoria indisponivel"); exit(1); } for(i=0;i<n;i++){ p[i]=0; printf("Digite um numero: "); getchar(); scanf("%d", &p[i]); if(p[i]==0 || p[i]%2==0) i--; system("cls"); } for(i=0;i<n;i++) printf("%d\n", &p[i]); free(p); return 0; }
  3. @devair1010 Me disseram que no Linux tá funcionando...
  4. @devair1010 Consegui ajeitar de uma outra forma, porém minha função setlocale continua sem funcionar e os caracteres "especiais" não aparecem. Segue abaixo a mensagem do compilador, na imagem. Mesmo eu tendo alterado pra UTF-8, o problema persiste.
  5. @devair1010 o problema tá sendo fazer funcionar dentro da estrutura de seleção. Eu preciso que determinada descrição apareça de acordo com a escolha do usuário.
  6. @devair1010 Se não me engano o strcpy só serve pra ser usado entre duas variáveis e não com variável e valor, porque continua não funcionando.
  7. @AnsiC Em outras ocasiões a atribuição direta havia funcionado com valor. Quando a atribuição é de uma string pra outra de fato não funciona. Vou tentar usar matriz. Porém o projeto tinha algumas exigências, eu precisava usat matriz, vetor, string e funções. Essa tinha sido a forma que eu encontrei de usar vetor. Mas tentarei com matriz. @devair1010 tentei o que você recomendou e não funcionou
  8. Tenho que fazer um coversor de medidas de área. Esse é apenas um trecho do programa e ele não tá completo. Mas vou explicar brevemente como funciona e quais problemas estou tendo. O programa deve apresentar um menu inicial (void menu), até aqui tudo bem. Caso o usuário selecione uma unidade de medida, o programa deve apresentar uma descrição sobre ela (void description1 e void description2). Os problemas A função setlocale(LC_ALL, "Portuguese") não funciona mesmo quando eu altero pra UTF-8 no encoding nas configurações. As funções void description1 e void description2 não funcionam e eu já testei de diversas formas: com if else, sem a variável intermediária s1 ou s2, iserindo a estrutura de seleção diretamente no void main. Também já usei printf pra testar se o vetor op[2] está recebendo valor e ele está. Estou quase de mãos atadas e preciso de ajuda. Por favor #include<stdio.h> #include<stdlib.h> #include<math.h> #include<locale.h> #include<string.h> int op[2]; int start; char km[2]; char ha[2]; char m[200]; char cm[2]; char mm[2]; char um[2]; char nm[2]; char s1[300]; char s2[300]; void menu(){ do{ printf("*****MENU*****\n\n"); printf("Ecolha uma opção através do número correspondente\n\n"); printf("1 - Sobre o programa\n2 - Descrição do programa\n3 - Fazer uma conversão\n\n"); printf("Opção: "); scanf("%d", &start); system("cls"); }while(start!=1 && start!=2 && start!=3); } char description1(){ //as descrições das unidades ainda serão inseridas km[2]="a"; ha[2]="a"; m[200]="O metro quadrado (m²) é a unidade padrão de área adaptada para o Sistema Internacional de Unidades, e derivada da unidade básica metro. Corresponde à área que tem um quadrado com um metro de lado."; cm[2]="a"; mm[2]="a"; um[2]="a"; nm[2]="a"; switch(op[0]){ case 1:strcpy(s1,km);break; case 2:strcpy(s1,ha);break; case 3:strcpy(s1,m);break; case 4:strcpy(s1,cm);break; case 5:strcpy(s1,mm);break; case 6:strcpy(s1,um);break; case 7:strcpy(s1,nm);break; } puts(s1); } void description2(){ //as descrições das unidades ainda serão inseridas km[2]="a"; ha[2]="a"; m[200]="O metro quadrado (m²) é a unidade padrão de área adaptada para o Sistema Internacional de Unidades, e derivada da unidade básica metro. Corresponde à área que tem um quadrado com um metro de lado."; cm[2]="a"; mm[2]="a"; um[2]="a"; nm[2]="a"; switch(op[1]){ case 1:strcpy(s2,km);break; case 2:strcpy(s2,ha);break; case 3:strcpy(s2,m);break; case 4:strcpy(s2,cm);break; case 5:strcpy(s2,mm);break; case 6:strcpy(s2,um);break; case 7:strcpy(s2,nm);break; } puts(s2); } void main(){ setlocale(LC_ALL, "Portuguese"); int op[2], i=1; double a, b, tabela[2]; menu(); if(start==1){ printf("teste"); //serão inseridas aqui informações gerais sobre o programa system("pause"); system("cls"); menu(); } else if(start==2){ printf("teste"); //descrição de como funciona o programa system("pause"); system("cls"); menu(); } else if(start==3){ printf("CONVERTER DE:\n\n"); printf("1 - Quilômetro quadrado (km²)\n2 - Hectare (ha)\n3 - Metro quadrado (m²)\n4 - Centímetro quadrado (cm²)\n5 - Milímetro quadrado (mm²)\n6 - Micrometro quadrado (μm²)\n7 - Nanômetro quadrado (nm²)\n\n"); printf("Opção: "); scanf("%d", &op[0]); system("cls"); printf("CONVERSÃO PARA:\n\n"); printf("1 - Quilômetro quadrado (km²)\n2 - Hectare (ha)\n3 - Metro quadrado (m²)\n4 - Centímetro quadrado (cm²)\n5 - Milímetro quadrado (mm²)\n6 - Micrometro quadrado (μm²)\n7 - Nanômetro quadrado (nm²)\n\n"); printf("Opção: "); scanf("%d", &op[1]); printf("\nValor a ser convertido: "); scanf("%lf", &a); system("cls"); } description1(); printf("\n\n"); description2(); //minhas funções description não estão funcionando :( }

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