Ir ao conteúdo
  • Cadastre-se

Unknown Creature

Membro Júnior
  • Posts

    8
  • Cadastrado em

  • Última visita

posts postados por Unknown Creature

  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.

    • Haha 1
  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. @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 😕

    • Curtir 1
  4. 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 :(
    }

     

    • Curtir 2

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

 

GRÁTIS: ebook Redes Wi-Fi – 2ª Edição

EBOOK GRÁTIS!

CLIQUE AQUI E BAIXE AGORA MESMO!