Ein besseres Programm zur Auswertung der Quadratwurzel einer Zahl

Ich bin ein Anfänger in der Programmiersprache C und hatte die Aufgabe, ein Programm zu schreiben, das die Quadratwurzel einer natürlichen Zahl ohne Verwendung von berechnetmath.h oder jede andere Bibliotheksfunktion außerstdio.h.

Sehen Sie, wir arbeiten mitint überall, also für nicht quadratische Zahlen finden wir den Boden der Quadratwurzel von n. Jetzt habe ich dieses Programm erstellt, aber es funktioniert nur für perfekte Quadrate, aber für Nicht-Quadrate funktioniert es nicht. Ich zitiere es hier, ich hoffe, es gibt eine Möglichkeit, es zu ändern.

#include <stdio.h> 
main() 
{    
    int a;
    scanf("%d", &a);
    int s = 1, l = a, mid = 0;
    while(s < l)
    { 
      mid=(s + l)/2;
      if((mid * mid) == a)
      {
          break;
      }
      else if ((mid * mid) < a)
      {
          s = mid + 1;
      }
      else
      {
          l = mid;
      }

    }   
    printf("%d", mid);
}

Vielen Dank für all Ihre Hilfe und bitte korrigieren Sie mich, wann immer Sie können.

Bearbeitet: Entschuldigung für die Unannehmlichkeiten.

Antworten auf die Frage(2)

Ihre Antwort auf die Frage