Ir para conteúdo

POWERED BY:

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

viciado

Potenciação

Recommended Posts

Programa que realize a potenciação por meio de multiplicações sucessivas e esta por meio de adição.

 

 

#include <stdio.h>
#include <stdlib.h>

int sm(int n){
	int i, soma;
	soma=0;
   for(i=0; i<n; i++){
			soma = soma + n;
				  }
			return(soma);
				
}

int mtp(int n, int e){
	int i, mult;
	mult = 0;
	for(i=0; i<e; i++){
		   mult = mult + sm(n);
				  }
				  return(mult);
}
				  
int main(){
  int n,e;
  printf("Digite o numero e o grau na qual sera elevado\n");
  scanf("%d %d",&n,&e);
  if(n==0){
		   printf("O resultado e 0 \n");
		   }
  if(e==0){
		   printf("O resultado e 1 \n");
		   }
  else{
  printf("O resultado e \n %d \n",mpt(n,e));
			}
  system("PAUSE");	
  return 0;
}

 

Erro: undefined reference to 'mpt'

Compartilhar este post


Link para o post
Compartilhar em outros sites

mpt() ou mtp()?

Preste atenção nos nomes das funções

 

Arrumei so que tem algum problema de logica.

 

 

#include <stdio.h>
#include <stdlib.h>

int sm(int n){
	int i, soma;
	soma=0;
   for(i=0; i<n; i++){
			soma = soma + n;
				  }
			return(soma);
				
}

int mtp(int n, int e){
	int i, mult;
	mult = 0;
	for(i=0; i<e; i++){
		   mult = mult + sm(n);
				  }
				  return(mult);
}
				  
int main(){
  int n,e;
  printf("Digite o numero e o grau na qual sera elevado\n");
  scanf("%d %d",&n,&e);
  if(n==0){
		   printf("O resultado e 0 \n");
		   }
  if(e==0){
		   printf("O resultado e 1 \n");
		   }
  else{
  printf("O resultado e \n %d \n",mtp(n,e));
			}
  system("PAUSE");	
  return 0;
}

Compartilhar este post


Link para o post
Compartilhar em outros sites

Edit: analisando o codigo acima acho que ficaria melhor desse jeito:(retirei a função sm() e modifiquei a função mtp())

#include <stdio.h>

int mtp(int n, int e){
register int i, mult;
mult = 1;
for(i=0; i<e; i++){
mult = mult*n;
}
return(mult);
}

int main(){
int n,e;
printf("Digite o numero e o grau na qual sera elevado\n");
scanf("%d %d",&n,&e);
if(n==0){
printf("O resultado e 0 \n");
}
if(e==0){
printf("O resultado e 1 \n");
}
else{
printf("O resultado e \n %d \n",mtp(n,e));
}
system("PAUSE"); 
return 0;
}

Olá

 

Eu testei aqui e apenas multiplica a base pelo expoente.

Tente usar a logica do codigo abaixo. Abraços

 

#include<stdio.h>

int main()
{
 int b, e, resultado;
 resultado = 1;
 printf("Base:\n");
 scanf("%d", &b);
 printf("Expoente:\n");
 scanf("%d", &e);
 if(b==0) printf("Resultado: 0");
 if(e==0) printf("Resultado: 1");
 if(b!=0 && e!=0)
 {
  register int i;
  for(i=0;i<e;i++)
  {
   resultado = resultado*b;
  }
  printf("Resultado: %d\n", resultado);
  }
  system("pause");
  return 0;

  }

Compartilhar este post


Link para o post
Compartilhar em outros sites

Edit: analisando o codigo acima acho que ficaria melhor desse jeito:(retirei a função sm() e modifiquei a função mtp())

#include <stdio.h>

 

int mtp(int n, int e){

register int i, mult;

mult = 1;

for(i=0; i<e; i++){

mult = mult*n;

}

return(mult);

}

 

int main(){

int n,e;

printf("Digite o numero e o grau na qual sera elevado\n");

scanf("%d %d",&n,&e);

if(n==0){

printf("O resultado e 0 \n");

}

if(e==0){

printf("O resultado e 1 \n");

}

else{

printf("O resultado e \n %d \n",mtp(n,e));

}

system("PAUSE");

return 0;

}

 

Olá

 

Eu testei aqui e apenas multiplica a base pelo expoente.

Tente usar a logica do codigo abaixo. Abraços

 

#include<stdio.h>

 

int main()

{

int b, e, resultado;

resultado = 1;

printf("Base:\n");

scanf("%d", &B);

printf("Expoente:\n");

scanf("%d", &e);

if(b==0) printf("Resultado: 0");

if(e==0) printf("Resultado: 1");

if(b!=0 && e!=0)

{

register int i;

for(i=0;i<e;i++)

{

resultado = resultado*b;

}

printf("Resultado: %d\n", resultado);

}

system("pause");

return 0;

 

}

 

O seu codigo funciona o problema e que estou tentando fazer como ta na ordem do exercicio

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.