關于cirf的問題
#include <stdio.h>
int getGirth(int a,int b,int c)
{
? ? if( (a+b)<=c || (a+c)<=b || (b+c)<=a )? ?//判斷是否為三角形
? ? {
? ? ? ? printf("不構成三角形\n");
? ? ? ? return 0;? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ??
? ? }
? ? else
? ? {
? ? ? int cirf = a+b+c;? ? ?//計算三角形周長
? ? ? return cirf;
? ? }
}
int main()
{
? ? /* 定義三角形三邊長 */
? ? int a, b, c,cirf;
? ? a = 3;
? ? b = 4;
? ? c = 5;
? ? getGirth(a,b,c);
? ? cirf=a+b+c;
? ? printf("三角形的周長是:%d\n", cirf);? //調用周長函數
? ? return 0;
}
?getGirth(a,b,c)里面不是已經定義了cirf=a+b+c了嗎?為什么后面主函數里還要再定義一次
2019-10-20
cirf只是自己定義的函數中的變量,只作用在int getGirth(int a,int b,int c)中,你在主函數中再次定義cirf并使用了cirf=a+b+c;輸出時就直接會得到主函數中cirf的結果,和自定義函數沒有半點關系了,而且printf中cirf可以直接換成函數調用getGirth(a,b,c)。
2020-02-12
你這樣的畫就和你自定義的函數沒有關系了,為什么要定義有參函數呢?就是因為在復雜的代碼中如果要修改的畫只修改main函數中的值就行了