簡體   English   中英

如何讓我的 function 打印真假

[英]How to get my function to print true or false

我怎樣才能讓我的程序像我的 function 要求那樣打印真或假? 進入三邊之后,什么也沒有發生。 謝謝。

#include <cs50.h>
#include <stdio.h>

//declare functions
bool valid_triangle(float x, float y, float z);


int main(void)
{
    float x = get_float("Side 1 length:  ");
    float y = get_float("Side 2 length:  ");
    float z = get_float("side 3 length:  ");
    
    bool valid_triangle(float x, float y, float z);
}


bool valid_triangle(float x, float y, float z)
{
    if (x + y > z && y + z > x && x + z > y)
    {
        return true;
    }
    else
    {
        return false;
    }
}

您永遠不會調用 function。 您也沒有打印“真”或“假”的代碼。 你可能想要這樣的東西:

if (valid_triangle (x, y, z))
    puts("true\n");
else
    puts("false\n");

你從來沒有打電話給你的 function。 出現在您的主 function 中調用 function 的語法實際上是聲明語法。 function 調用語句不應包含類型信息。 您應該按如下方式調用您的 function,然后根據您的 function 決定打印 true 或 false:

int main(void)
{
    float x = get_float("Side 1 length:  ");
    float y = get_float("Side 2 length:  ");
    float z = get_float("side 3 length:  ");
    
   if(valid_triangle(x, y, z))
          printf("True");
   else
          printf("False");
}

您的驗證 function 可以更簡潔地編寫如下:


bool valid_triangle(float x, float y, float z)
{
    return (x + y > z && y + z > x && x + z > y);
}

這是因為驗證表達式已經計算為 boolean 表達式。 所以你不需要if-else。

int main(void)
{
    float x = get_float("Side 1 length:  ");
    float y = get_float("Side 2 length:  ");
    float z = get_float("side 3 length:  ");
    
    valid_triangle(x, y, z);
}
printf(valid_triangle(x, y,z)?"true":"false");

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM