Ir ao conteúdo
  • Cadastre-se

Como colocar alocação dinâmica de memória?


Posts recomendados

Olá, eu criei um programa como esse e agora eu necessitaria adicionar alocação dinâmica nele, alguem conseguiria fazer para eu aprender? obrigado desde já

 

 

#include <stdio.h>
#include <conio.h>
#include <string.h>
int binario(int n,int i)
{
    int x=0;
    if(n!=0)
    {
        x= n%2;
        x=(x*i)+binario(n/2,i*10);
    }
    return x;
 
}
int mult(int a,int B)
{
    if(b!=1)
    {
        a=a+mult(a,b-1);
    }
    return a;
}
int conta(char p[])
{
    int i;
    for(i=0;p!='\0';i++)
    {
 
    }
    return i;
}
 
void inverte(char p[],int j)
{
    char aux;
    int i=conta(p)-1;
    if(j<(i-j))
    {
        aux=p[j];
        p[j]=p[i-j];
        p[i-j]=aux;
        inverte(p,j+1);
    }
}
int gerador(int n,int i,int j)
{
    int x;
    if(n>0)
    {
        x=(2*j)+(3*i);
        x=gerador(n-1,j,x);
        return x;
    }
}
int retorne(int n[],int i,int j)
{
    int x=-1,y;
    if(i>=0)
    {
        if(n[i/2]==j)
        {
            y=i/2;
            while(y>=0)
            {
                if(n[y]==j)
                    x=y;
                y--;
            }
        }
        else
        {
            y=i/2;
            while(y>=0)
            {
                if(n[y]==j)
                    x=y;
                y--;
            }
            y=i/2;
            while(y<=i)
            {
                if((n[y]==j)&&(x==-1))
                    x=y;
                y++;
            }
        }
    }
    return x;
}
 
int main ()
{
    int num,tam;
    int p;
    char opc,c[10];
    char palavra[10];
    do
    {
        printf("Se quiser parar digite $\n");
        printf("Digite a condicao que voce quer executar: ");
        fflush(stdin);
        scanf("%c",&opc);
        opc=toupper(opc);
        system("cls");
        switch(opc)
        {
            case 'A':   printf("Digite o numero que sera convertido: ");
                        scanf("%d",&num);
                        printf("O numero em binario \202: %d\n\n",binario(num,1));
                        break;
            case 'B':   printf("Digite os numeros que serao multiplicados.\nNumero 1: ");
                        scanf("%d",&num);
                        printf("Numero 2: ");
                        scanf("%d",&p);
                        if(p!=0)
                            p=mult(num,p);
                        printf("O resultado da multiplicacao \202: %d\n\n",p);
                        break;
            case 'C':   printf("Digite a frase que voce quer inverter: ");
                        fflush(stdin);
                        gets(palavra);
                        inverte(palavra,0);
                        printf("A palavra invertida \202: %s\n\n",palavra);
                        break;
            case 'D':   printf("Digite um valor para n: ");
                        scanf("%d",&num);
                        printf("O numero gerado \202: %d\n\n",gerador(num,0,1));
                        break;
            case 'E':   printf("Digite a palavra: ");
                        fflush(stdin);
                        gets(palavra);
                        strcpy(c,palavra);
                        inverte(c,0);
                        if(strcmp(palavra,c)==0)
                        {
                            printf("A palavra \202 palindromo. \n\n");
                        }
                        else printf("A palavra nao \202 palindromo.\n\n");
                        break;
            case 'F':   printf("Informe o tamanho do vetor: ");
                        scanf("%d",&tam);
                        int o[tam];
                        printf("Digite um vetor de %d posições: ",tam);
                        for(num=0;num<tam;num++)
                        scanf("%d",&o[num]);
                        printf("Informe um valor que deseja buscar: ");
                        scanf("%d",&num);
                        printf("A menor posicao do valor buscado \202: %d\n\n",retorne(o,tam,num));
                        break;
        }
 
    }while(opc!='$');
}
 
Link para o comentário
Compartilhar em outros sites

Visitante
Este tópico está impedido de receber novas respostas.

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