Ir ao conteúdo
  • Cadastre-se

C programa em c com funções


CARRETA PCZAO

Posts recomendados

O PROGRMA FARA OO SEGUINTE ELE VAI PEGAR O NUMERO QUE O USUARIO DIGITAR E VAI DIVIDIR E PAGAR O RESTANTE DEPOIS ELE VAI INVERTER IGUAL A SOMAR BINARIO M, MAS NAO ESTOU CONSEGUINDO FAZER Mais nada com codigo

#include<stdio.h>
void converte(int x,int base,int r[10],int *n);
main(){
  int cp_x,cp_base,cp_r[10],vet[10],cp_n;	
	printf("entre com numero: "); scanf("%i",&cp_x);
	printf("entre com base: "); scanf("%i",&cp_base);
 	converte(cp_x,cp_base,cp_r,&cp_n);
 	printf("%i \n",cp_n);
 	cp_n--;
 	for( int i=0;i<=cp_n;i++){
 		vet[i]= cp_r[cp_n-i];//
 		 	printf("%i",vet[i]);
	 }	
}
void converte(int x,int base,int r[10],int *n){
	int i;
	do{
		for(i=0;i<*n;i++)
		 x = x/base;
		 r[i] =x % base;
    	}
		 n=n+1;
	}while(x>0);
	
 	

 

  • Triste 1
Link para o comentário
Compartilhar em outros sites

5 horas atrás, AnsiC disse:

Você que o quê? Converte um número inteiro entre bases quaisquer? Você parece que tem dislexia quando o quesito é código.

 

na verdade eu so quero aprender medio de progrmação eu sou de infra uso virtualizações ,linux,redes+++, eu nao sei progrmar bem me atrapalho mttt

adicionado 0 minutos depois
5 horas atrás, AnsiC disse:

Você que o quê? Converte um número inteiro entre bases quaisquer? Você parece que tem dislexia quando o quesito é código.

 

so ate a base 10

 

Link para o comentário
Compartilhar em outros sites

Eu acho bem melhor codificar dividindo o problema: Seu problema eu acho que pode ser dividido em 2

  • Um função que inverte as posições dos elementos do vetor.
  • Um função que converte as bases e salva em um string (salvar em strings é bem melhor)

 

for( int i=0; i <= cp_n; i++ )
{	vet[i]= cp_r[cp_n-i];//
	printf("%i",vet[i]);
}

Você meio já tem o que é preciso para inverter os elementos de um vetor bem acima, você consegue entender o mesmo que eu do código aqui embaixo.

 

Vai ter que fazer 2 funções, uma para retorna o tamanho de uma strings, e outra para trocar os valores de dois caracteres

void * strings_inverter( char * cstrings )
{	int esq= strings_len( cstrings ); /*< retorna o tamanho de cstrings */
	int dir= 0;
 
	while( dir <-- esq )
	{	character_swp( (& cstrings[ dir ]), (& cstrings[ esq ]) );
		++ dir;
	}
	return cstrings;
}

 

Link para o comentário
Compartilhar em outros sites

Olá...

O enunciado esta confuso...

Vejá bem!

- PEGAR O NUMERO QUE O USUÁRIO DIGITAR E DIVIDIR

 Tudo bem, mas - PAGAR O RESTANTE - DEPOIS ELE VAI INVERTER IGUAL A SOMAR BINARIO M... Tudo se enrola por ai...

deixe as informações bem detalhado que facilita até pra você...

 

Espero ter ajudado e até...

Link para o comentário
Compartilhar em outros sites

20 horas atrás, LuisOPsum disse:

Olá...

O enunciado esta confuso...

Vejá bem!

- PEGAR O NUMERO QUE O USUÁRIO DIGITAR E DIVIDIR

 Tudo bem, mas - PAGAR O RESTANTE - DEPOIS ELE VAI INVERTER IGUAL A SOMAR BINARIO M... Tudo se enrola por ai...

deixe as informações bem detalhado que facilita até pra você...

 

Espero ter ajudado e até...

eu quero dividir 103 /3 e ele me dar o numero em binario , mas lembra que na divisao binaria nois temos de inverter o numro tipo 100011 ele sera invertido para 11001

Link para o comentário
Compartilhar em outros sites

Olá...

Eu fiz mim baseado através desse portal de conversões. Caso não seja, informe onde esta o problema...

Link.: conversor_online.

#include <conio.h>
#include "stdlib.h"
#include <stdio.h>
main(int argc, char* argv[]){
  int n,op;
  char s[10],c[10];
  printf("Escolha o valor de base entre 2 ate 10:\n p/ converter em Binario.: ");      
  scanf("%d",&op);
  
  if((op >= 2) && (op <= 10)){    
    switch(op){
          case 2:printf("Digite um numero inteiros.: ");
                 scanf("%d",&n); 
                 itoa(n,s,2); 
                 printf("\n\n\t\tO valor %d em binario  Base 2 e %s ",n,s);
                 printf("\n\t\t\tEntre P/ Sair.."); getch(); return 0; break;
                 
          case 3:printf("Digite um numero inteiros.: ");
                 scanf("%d",&n); 
                 itoa(n,s,2);
                 itoa(n,c,3); 
                 printf("\n\n\t\tO valor %d em binario seria %s ",n,s);
                 printf("\n\t\tO valor %d na Base 3 e %s ",n,c);
                 printf("\n\t\t\tEntre P/ Sair..."); getch(); return 0; break;
          
          case 4:printf("Digite um numero inteiros.: ");
                 scanf("%d",&n); 
                 itoa(n,s,2);
                 itoa(n,c,4); 
                 printf("\n\n\t\tO valor %d em binario seria %s ",n,s);
                 printf("\n\t\tO valor %d na Base 4 e %s ",n,c);
                 printf("\n\t\t\tEntre P/ Sair..."); getch(); return 0; break;
        
         case 5:printf("Digite um numero inteiros.: ");
                 scanf("%d",&n); 
                 itoa(n,s,2);
                 itoa(n,c,5); 
                 printf("\n\n\t\tO valor %d em binario seria %s ",n,s);
                 printf("\n\t\tO valor %d na Base 5 e %s ",n,c);
                 printf("\n\t\t\tEntre P/ Sair..."); getch(); return 0; break;
         
         case 6:printf("Digite um numero inteiros.: ");
                 scanf("%d",&n); 
                 itoa(n,s,2);
                 itoa(n,c,6); 
                 printf("\n\n\t\tO valor %d em binario seria %s ",n,s);
                 printf("\n\t\tO valor %d na Base 6 e %s ",n,c);
                 printf("\n\t\t\tEntre P/ Sair..."); getch(); return 0; break;
         
         case 7:printf("Digite um numero inteiros.: ");
                 scanf("%d",&n); 
                 itoa(n,s,2);
                 itoa(n,c,7); 
                 printf("\n\n\t\tO valor %d em binario seria %s ",n,s);
                 printf("\n\t\tO valor %d na Base 7 e %s ",n,c);
                 printf("\n\t\t\tEntre P/ Sair..."); getch(); return 0; break;
        
         case 8:printf("Digite um numero inteiros.: ");
                 scanf("%d",&n); 
                 itoa(n,s,2);
                 itoa(n,c,8); 
                 printf("\n\n\t\tO valor %d em binario seria %s ",n,s);
                 printf("\n\t\tO valor %d na Base 8 e %s ",n,c);
                 printf("\n\t\t\tEntre P/ Sair..."); getch(); return 0; break;
        
         case 9:printf("Digite um numero inteiros.: ");
                 scanf("%d",&n); 
                 itoa(n,s,2);
                 itoa(n,c,9); 
                 printf("\n\n\t\tO valor %d em binario seria %s ",n,s);
                 printf("\n\t\tO valor %d na Base 9 e %s ",n,c);
                 printf("\n\t\t\tEntre P/ Sair..."); getch(); return 0; break;
        
         case 10:printf("Digite um numero inteiros.: ");
                 scanf("%d",&n); 
                 itoa(n,s,2);
                 itoa(n,c,10); 
                 printf("\n\n\t\tO valor %d em binario seria %s ",n,s);
                 printf("\n\t\tO valor %d na Base 10 e %s ",n,c);
                 printf("\n\t\t\tEntre P/ Sair..."); getch(); return 0; break;
   }
 }                        printf("\n\n\n\t\tValor Base nao existente...");
                          printf("\n\t\t\tEntre P/ Sair...");
                          getch();       
}

 

Espero ter ajudado e até...

  • Amei 1
Link para o comentário
Compartilhar em outros sites

Crie uma conta ou entre para comentar

Você precisa ser um usuário para fazer um comentário

Criar uma conta

Crie uma nova conta em nossa comunidade. É fácil!

Crie uma nova conta

Entrar

Já tem uma conta? Faça o login.

Entrar agora

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