试问蓝桥杯有多水,一道题就能回答你(吐槽,坑)

来源:互联网 发布:js登录表单验证 编辑:程序博客网 时间:2024/05/17 04:17

今天刷了一道蓝桥杯的题,因为这道题,对蓝桥杯彻底无语了。

 算法训练 P1103  

编程实现两个复数的运算。设有两个复数 和 ,则他们的运算公式为:

  要求:

(1)定义一个结构体类型来描述复数。
  (2)复数之间的加法、减法、乘法和除法分别用不用的函数来实现。
  (3)必须使用结构体指针的方法把函数的计算结果返回。

  说明:用户输入:运算符号(+,-,*,/) a b c d.
  输出:a+bi,输出时不管a,b是小于0或等于0都按该格式输出,输出时a,b都保留两位。

输入:
  - 2.5 3.6 1.5 4.9
输出:
  1.00+-1.30i

#include<stdio.h>  int main()  {      char ch;      double a,b,c,d;      scanf("%c%lf%lf%lf%lf",&ch,&a,&b,&c,&d);      if(ch=='+')      {          printf("%.2lf+%.2lfi",a+c,b+d);      }      if(ch=='-')      {          printf("%.2lf+%.2lfi",a-c,b-d);      }      if(ch=='*')      {          printf("%.2lf+%.2lfi",a*c-b*d,a*d+b*c);      }      if(ch=='/')      {          printf("%.2lf+%.2lfi",(a*c+b*d)/(c*c+d*d),(b*c-a*d)/(c*c+d*d));      }      return 0;  }  


测试截图:



重点看提交序号为848606,提交的目标代码没有满足三条要求中的任何一条,居然得了满分,严重怀疑测试系统仅仅是判断最后一步输出是否满足要求而已,

其他的一概不管。宝宝不能说什么了,宝宝心里苦啊,刷了这么久的题,蓝桥官方居然是这种态度对待广大参赛者。

下面是我写的代码:

#include<stdio.h>#include<stdlib.h>#include<malloc.h>struct Num{      double real;      double imag;  };  double a1,b1,a2,b2;  void Input()  {      scanf("%lf%lf%lf%lf",&a1,&b1,&a2,&b2);       }  Num *add()  {      Num *ans;      ans=(Num *)malloc(sizeof(Num));    ans->real=a1+a2;      ans->imag=b1+b2;      return ans;  }  Num *sub()  {      Num *ans;      ans=(Num *)malloc(sizeof(Num));      ans->real=a1-a2;      ans->imag=b1-b2;      return ans;  }  Num *mul()  {      Num *ans;      ans=(Num *)malloc(sizeof(Num));      ans->real=a1*a2-b1*b2;      ans->imag=a1*b2+a2*b1;      return ans;  }  Num *div()  {      Num *ans;      ans=(Num *)malloc(sizeof(Num));      if(a2==0||b1==0||b2==0) return NULL;      double den=a2*a2+b2*b2;      ans->real=(a1*a2+b1*b2)/den;      ans->imag=(b1*a2-a1*b2)/den;      return ans;  }  int main()  {      char op;      Num *ans;      ans=(Num *)malloc(sizeof(Num));      scanf("%c",&op);      Input();      switch(op)      {          case '+':ans=add();break;          case '-':ans=sub();break;          case '*':ans=mul();break;          case '/':ans=div();break;          default :break;      }      printf("%.2lf+",ans->real);       printf("%.2lfi",ans->imag);      return 0;   }   

本地编译器运行截图如下:


而在蓝桥杯的练习系统中的测试结果:



思考了很久,修改了很多细节的地方,程序仍然不能通过,竟无语哽咽。

若问蓝桥有多水,回答曰:这是第一次参加,也是最后一次。蓝桥你要珍重,且行且珍惜。

细节决定成败。



1 0
原创粉丝点击