Boa noite!
Preciso aqui de uma ajudinha com o meu programa. Ao que parece ele não reclama erros mas não faz o que é suposto.
Fica aqui uma forma reduzida do dito cujo...
O programa deveria de correr mais ou menos assim
Já tentei tirar o printf da função, fazer return k e depois na main escrever o printf("%d eh divisor de %d de ordem %d\n", m, n, ordemDeDivisor( n, m )); mas o resultado é o mesmo. O que é estranho pois fiz mais ou menos o que tenho no primeiro quote noutra função também neste programa mas a diferença é que o printf na função estava num if
PS: Não sei se é importante( não deve ser) mas o programa tens mais case's e mais funções mas nenhuma com problemas.
Obrigado desde já
Preciso aqui de uma ajudinha com o meu programa. Ao que parece ele não reclama erros mas não faz o que é suposto.
Fica aqui uma forma reduzida do dito cujo...
Código:
#include <stdio.h>
int menu (void)
int ordemDeDivisor( int n, int m );
int main (void) {
int opcao = -1;
int n, m;
while ( opcao != 0 ) {
opcao = menu( );
switch ( opcao ) {
case 1:
printf( "Introduza n: " );
scanf( "%d", &n );
break;
case 2:
printf( "Introduza m: " );
scanf( "%d", &m );
ordemDeDivisor( n, m );
break;
case 0:
...
break;
default:
...
break;
}
}
return 0;
}
int ordemDeDivisor( int n, int m ){
int pot=m;
int k=0;
while(pot < n){
if(n%pot == 0)
pot = pot * m;
k=k+1;
}
printf("%d eh divisor de %d de ordem %d\n", m, n, k);
return 0;
}
Sendo que o que está a vermelho não chega a aparecer. Não sei como chamam ao fenómeno fantástico que é esse em que sou obrigado a fechar o terminal (sei que ha outra forma mas nao sei qual e) para voltar correr o programa.Menu
1 - Introduzir um inteiro n
2 - Introduzir inteiro m e calcular a sua ordem de divisor de n
0 - Sair
Introduza uma opcao: 1
Introduza n: 600
Menu
1 - Introduzir um inteiro n
2- Introduzir inteiro m e calcular a sua ordem de divisor de n
0 - Sair
Introduza uma opcao: 2
Introduza m: 2
2 eh divisor de ordem 3 de 600
Já tentei tirar o printf da função, fazer return k e depois na main escrever o printf("%d eh divisor de %d de ordem %d\n", m, n, ordemDeDivisor( n, m )); mas o resultado é o mesmo. O que é estranho pois fiz mais ou menos o que tenho no primeiro quote noutra função também neste programa mas a diferença é que o printf na função estava num if
PS: Não sei se é importante( não deve ser) mas o programa tens mais case's e mais funções mas nenhuma com problemas.
Obrigado desde já
Última edição: