為什么這樣會錯誤?
#include <stdio.h>
int getGirth(int a,int b,int c)
{
? ? if( (a+b)<=c || (a+c)<=b || (b+c)<=a )? ?//判斷是否為三角形
? ? {
? ? ? ? printf("不構(gòu)成三角形\n");
? ? ? ? return 0;? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ??
? ? }
? ? else
? ? {
? ? ? int cirf = a+b+c ;? ? ?//計算三角形周長
? ? ? return cirf;
? ? }
? ? ? ?
}
int main()
{
? ? /* 定義三角形三邊長 */
? ? int a, b, c;
? ? a = 3;
? ? b = 4;
? ? c = 5;
? ? printf("三角形的周長是:%d\n", cirf);??
? ? getGirth(a,b,c);//調(diào)用周長函數(shù)
? ? return 0;
}
2019-10-20
問題一、cirf沒有在主函數(shù)中定義,cirf是int getGirth(int?a,int?b,int?c)中的變量,只作用于這個函數(shù),函數(shù)外無法使用。
問題二、在主函數(shù)定義cirf后需要初始化值,不然就是隨機數(shù)。
問題三、函數(shù)調(diào)用放在printf后輸出不會顯示被調(diào)用的函數(shù)的返回值,可以使用賦值在printf前把函數(shù)的返回值賦給cirf。
綜上,解決方法:int cirf=getGirth(a,b,c);printf("三角形的周長是:%d\n", cirf);
2019-10-20
或者還可以printf("三角形的周長是:%d\n", getGirth(a,b,c);這樣解決
2019-10-16
2019-10-13
cirf沒有初始化,要先令他等于? 0
2019-10-13
cirf在子函數(shù)里要用到主函數(shù)的話要先聲明可以在主函數(shù)里int cirf;一下