| 
 | 
 
马上注册,结交更多好友,享用更多功能^_^
您需要 登录 才可以下载或查看,没有账号?立即注册  
 
x
 
- #include <stdio.h>
 
 - #include <math.h>
 
 - int main()
 
 - {
 
 -         float a, b, c, disc,x1, x2, p, q;
 
  
-         printf("please enter the value of a, b, c\n");
 
 -         scanf("%f%f%f",&a, &b, &c);
 
  
-         disc = b * b - 4 * a * c;
 
 -         p = (-b)/(2 * a);
 
 -         q = sqrt(b * b - 4 * a * c)/(2 * a);
 
  
-         if(disc < 0) {
 
 -                 printf("方程无实根\n");
 
 -         }
 
 -         else {
 
 -                 x1 = p + q;
 
 -                 x2 = p - q;
 
 -                 printf("the root of it is %.2f,%.2f\n",x1, x2);
 
 -         }
 
 -         return 0;
 
 - }
 
  复制代码 
写了一个求根的代码,请看看可以完善的地方
这段代码已经实现了求根的功能,但有几个地方可以进行改进: 
 
1. 输入验证:在接受用户输入之前,应该添加输入验证的代码,以确保用户输入的是有效的浮点数。如果用户输入的是非法字符或者不是浮点数,程序可能会出现错误。 
 
2. 错误处理:当方程没有实根时,程序只是简单地打印出"方程无实根",但没有提供任何错误处理机制。可以考虑使用错误码或异常处理来更好地处理这种情况。 
 
3. 变量命名:变量名应该具有描述性,以便于代码的可读性和维护性。例如,可以将变量p和q改为更有意义的根的一部分,如root1和root2。 
 
4. 输出格式:当前代码中使用了"%.2f"来格式化输出根的值,保留两位小数。这在大多数情况下是足够的,但如果需要更高的精度,可以使用更多的小数位数。 
 
下面是对代码进行改进后的示例: 
 
- #include <stdio.h>
 
 - #include <math.h>
 
  
- int main()
 
 - {
 
 -     float a, b, c, disc, root1, root2;
 
  
-     printf("请输入a、b、c的值:\n");
 
 -     if (scanf("%f%f%f", &a, &b, &c) != 3) {
 
 -         printf("输入错误!请确保输入的是有效的浮点数。\n");
 
 -         return 1;
 
 -     }
 
  
-     disc = b * b - 4 * a * c;
 
 -     if (disc < 0) {
 
 -         printf("方程无实根\n");
 
 -     } else {
 
 -         root1 = (-b + sqrt(disc)) / (2 * a);
 
 -         root2 = (-b - sqrt(disc)) / (2 * a);
 
 -         printf("方程的实根为:%.4f, %.4f\n", root1, root2);
 
 -     }
 
  
-     return 0;
 
 - }
 
 
  复制代码 
 
这个改进后的代码在接受用户输入之前进行了输入验证,使用了更具描述性的变量名,并在输出中保留了四位小数。 
 
 
 |   
 
 
 
 |