Calculadora - Problema na divisão e raiz?

Tenho um trabalho da escola em que preciso desenvolver uma calculadora usando somente operações de adição e subtração.

Estou tendo dificuldade na parte da divisão e da raiz quadrada, ambas só funcionam para casos perfeitos. A divisão só funciona direito para casos em que o numero é divisível pelo outro e a raiz só funciona com raízes perfeitas.

Alguém poderia me ajudar, aqui o que eu fiz :

int divi(int a, int b){
    int d=a, i=0;
    while (i<d){
        d=d-b+1;
        i++;
    }     	   
    return d;
}

int raiz(int a){
	int q=0;
	for (int s=0; s!=a; s++){
		q= mul(s,s);
		if (q==a){
			return s;
		
		}
	}
}

Oi, não usa a variável int pra fazer as operações de divisão e raiz porque elas só trabalham com números inteiros. Dependendo de onde você está programando existe o Double, Real, Float.

1 curtida

é que o tipo de variável foi determinado pelo professor

Se o professor determinou isso, então o seu programa possa ser esse mesmo, o amigo anterior lhe deu uma dica especial, divisão pode dar número quebrado e o int não é o tipo correto.

Talvez ele queria que o programa seja assim, o legal seria você perguntar para ele e propor mudanças ou então pergunta se é assim mesmo que deve ser ou seja, números perfeitos.

@let

sim sim, eu até concordo que o uso de outro tipo de variável é melhor. O problema é que tenho que achar uma solução para, por exemplo, a divisão de 10 por 3 ter o retorno 3, e não 2 (que é o que está ocorrendo)

Sua variável i tem que ser modificada para iniciar com 1.