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
{
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!='$');
}