2015-10-06 136 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

相關問題