天狼666 2016-02-12 04:43 采纳率: 0%
浏览 4298

大神们!这个程序在没有错误,能运行,为什么一到蓝桥杯提交时间就会显示编译错误的?


评测结果 编译出错
得分 0
CPU使用 编译出错
内存使用 编译出错
试题名称 算法训练 P1103
语言 C
源代码

#include
#include
#include
struct fushu{
double real;
double i;
};
fushu* add(fushu a, fushu b){
fushu* ret = (fushu*)malloc(sizeof(fushu));
ret->real = a.real + b.real;
ret->i = a.i + b.i;
return ret;
}
fushu* minus(fushu a, fushu b){
fushu* ret = (fushu*)malloc(sizeof(fushu));
ret->real = a.real - b.real;
ret->i = a.i - b.i;
return ret;
}
fushu* multiply(fushu a, fushu b){
fushu* ret = (fushu*)malloc(sizeof(fushu));
ret->real = a.real*b.real - a.i*b.i;
ret->i = a.real*b.i + a.i*b.real;
return ret;
}
fushu* divide(fushu a, fushu b){
fushu* ret = (fushu*)malloc(sizeof(fushu));
ret->real = (a.real*b.real + a.i*b.i)/(b.real*b.real + b.i*b.i);
ret->i = (a.i*b.real - a.real*b.i)/(b.real*b.real + b.i*b.i);
return ret;
}
int main()
{

char sign;
fushu m;
fushu n;
scanf("%c%lf%lf%lf%lf",&sign,&m.real,&m.i,&n.real,&n.i);
if( sign == '+' ){
add(m,n);
printf("%.2lf+%.2lfi\n",add(m,n)->real,add(m,n)->i);
}
if( sign == '-' ){
minus(m,n);
printf("%.2lf+%.2lfi\n",minus(m,n)->real,minus(m,n)->i);
}
if( sign == '*' ){
multiply(m,n);
printf("%.2lf+%.2lfi\n",multiply(m,n)->real,multiply(m,n)->i);
}
if( sign == '/' ){
divide(m,n);
printf("%.2lf+%.2lfi\n",divide(m,n)->real,divide(m,n)->i);
}
return 0;
}
编译信息

code.c:8:2: error: unknown type name 'fushu'
fushu* add(fushu a, fushu b){
^
code.c:8:13: error: unknown type name 'fushu'
fushu* add(fushu a, fushu b){
^
code.c:8:22: error: unknown type name 'fushu'
fushu* add(fushu a, fushu b){
^
code.c:14:2: error: unknown type name 'fushu'
fushu* minus(fushu a, fushu b){
^
code.c:14:15: error: unknown type name 'fushu'
fushu* minus(fushu a, fushu b){
^
code.c:14:24: error: unknown type name 'fushu'
fushu* minus(fushu a, fushu b){
^
code.c:20:2: error: unknown type name 'fushu'
fushu* multiply(fushu a, fushu b){
^
code.c:20:18: error: unknown type name 'fushu'
fushu* multiply(fushu a, fushu b){
^
code.c:20:27: error: unknown type name 'fushu'
fushu* multiply(fushu a, fushu b){
^
code.c:26:2: error: unknown type name 'fushu'
fushu* divide(fushu a, fushu b){
^
code.c:26:16: error: unknown type name 'fushu'
fushu* divide(fushu a, fushu b){
^
code.c:26:25: error: unknown type name 'fushu'
fushu* divide(fushu a, fushu b){
^
code.c: In function 'main':
code.c:35:2: error: unknown type name 'fushu'
fushu m;
^
code.c:36:2: error: unknown type name 'fushu'
fushu n;
^
code.c:37:33: error: request for member 'real' in something not a structure or union
scanf("%c%lf%lf%
详细记录

评测点序号 评测结果 得分 CPU使用 内存使用 下载评测数据
1 编译出错 0.00 0ms 0B 输入 输出
2 编译出错 0.00 0ms 0B VIP特权
3 编译出错 0.00 0ms 0B VIP特权
4 编译出错 0.00 0ms 0B VIP特权

  • 写回答

2条回答

  • 91program 博客专家认证 2016-02-12 05:35
    关注

    你最好是使用 struct fushu 来定义变量,或者返回的类型。
    否则,你最好使用如下的定义:

     typedef struct fushu
     {
     ...
     }fusht_t;
    

    然后使用 fushu_t 来定义变量等。

    评论

报告相同问题?

悬赏问题

  • ¥100 c语言,请帮蒟蒻看一个题
  • ¥15 名为“Product”的列已属于此 DataTable
  • ¥15 安卓adb backup备份应用数据失败
  • ¥15 eclipse运行项目时遇到的问题
  • ¥15 关于#c##的问题:最近需要用CAT工具Trados进行一些开发
  • ¥15 南大pa1 小游戏没有界面,并且报了如下错误,尝试过换显卡驱动,但是好像不行
  • ¥15 没有证书,nginx怎么反向代理到只能接受https的公网网站
  • ¥50 成都蓉城足球俱乐部小程序抢票
  • ¥15 yolov7训练自己的数据集
  • ¥15 esp8266与51单片机连接问题(标签-单片机|关键词-串口)(相关搜索:51单片机|单片机|测试代码)