2015-10-06 94 views
-2
#include<stdio.h> 

float length() { 
    float length; 
    printf("Input Length: "); 
    scanf("%f", &length); 
    return length; 
} 

float width(){ 
    float width; 
    printf("Input Width: "); 
    scanf("%f", &width); 
    return width; 
} 

float area(){ 
    float area=length * width; 
    return area; 
} 

float perimeter(){ 
    float perimeter=(length*2) + (width*2); 
    return perimeter; 
} 

int main(){ 
    printf("Area = %f\n", area()); 
    printf("Perimeter = %f\n", perimeter()); 
} 

无效操作数区域下和周长 skafhasfhsafsakhfsakfhasfkhsafksahfakshfaskfhasfkshfaskfhsfashfkashfasfhasfhasfksahfasfasfasfasfsfsfsfas无效操作数为二进制*

+2

您可以发布'length'和申报'width'?如果它们声明为'float',则此代码将进行编译。 –

+2

他们在哪里申报? – immibis

+1

如果您使用声明编辑您的问题,您可能可以摆脱downvote。 –

回答

0

这里是速战速决:

#include <stdio.h> 

float width(){ 
    float width; 
    printf("Input Width: "); 
    scanf("%f", &width); 
    return width; 
} 

float length(){ 
    float length; 
    printf("Input Length: "); 
    scanf("%f", &length); 
    return length; 
} 

float area() { 
    return length() * width(); 
} 

float perimeter(){ 
    float perimeter=(length()*2) + (width()*2); 
    return perimeter; 
} 

int main(){ 
    printf("Area = %f\n", area()); 
    printf("Perimeter = %f\n", perimeter()); 
} 

但这里是我会怎么做:

#include <stdio.h> 

float width(){ 
    float width; 
    printf("Input Width: "); 
    scanf("%f", &width); 
    return width; 
} 

float length(){ 
    float length; 
    printf("Input Length: "); 
    scanf("%f", &length); 
    return length; 
} 

float area(float length, float width) { 
    return length * width; 
} 

float perimeter(float length, float width){ 
    return length*2 + width*2; 
} 

int main(){ 
    float l = length(); 
    float w = width(); 
    printf("Area = %f\n", area(l, w)); 
    printf("Perimeter = %f\n", perimeter(l, w)); 
} 
+0

这个“快速解决方案”与OP的帖子有相同的错误。 – owacoder

+0

UPS我粘贴了他的代码,而不是我的;( – 2015-10-06 04:03:13

+0

嗯,是的,这会给出正确的输出,但需要用户重复输入(这几乎不是一个好主意) – owacoder

2

lengthwidthareaperimeter被计算为函数指针,是没有定义乘法。

+0

我该如何编辑它?我仍然在学习这种方法 –

+2

要么使全局变量保持长度和宽度(容易,但不推荐),或者修改'area'和'perimeter'来获取指定长度和宽度的参数(更难但更易维护) 。 – owacoder

相关问题