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

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

 算法训练 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;  
 }   

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


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



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

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

细节决定成败。



评论 24
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值