0

return コマンドを使用してから、メインから値を出力しようとします。ゼロ (0) の値を返します。

このプログラムは、摂氏から華氏への温度変換に関するものです。

また、丸め関数を使用して答えを整数に丸め、小数の浮動小数点数にならないようにするにはどうすればよいですか。

#include <stdio.h>

int Cel_To_Fah(int a, int b); // function declaration

int main (void)

{

    int a;
    int b;

    printf(" Enter temperatrure:  "); scanf("%d", &a);

    Cel_To_Fah(a,b); // function call

    printf("The temperature is: %d\n", b);

    return 0;

} // main

int Cel_To_Fah(a,b)

{

    b=1.8*a+32;

    return b;

} // Cel_To_Fah
4

5 に答える 5

6

代入演算子を使用するだけです。

b = Cel_To_Fah(a);

ただし、Cel_To_Fah関数に正しい署名がないなど、プログラムには多くの問題があります。おそらく次のようなものが必要です。

int Cel_To_Fah(int a)
{
    return 1.8 * a + 32;
}

おそらく、初心者向けの優れた C の本を入手する必要があります。

于 2013-10-14T17:35:03.277 に答える
0

関数Cel_To_Fah(a,b);は値 ( inttype) を返すため、戻り値の型 ( type) の変数に割り当てる必要がありますint

 int a;
 int b;

printf(" Enter temperatrure:  "); scanf("%d", &a);

b = Cel_To_Fah(a); // function call

printf("The temperature is: %d\n", b);  

そしてあなたの機能は

int Cel_To_Fah(a)
{
    int b = 1.8*a+32;
    return b;
 } // Cel_To_Fah  

そして、関数プロトタイプを次のように変更することを忘れないでください

int Cel_To_Fah(int a);
于 2013-10-14T17:36:27.957 に答える
0

あなたのコードには 2 つの問題がありました。まず、可変型です。摂氏を整数として欲しいと仮定します。ただし、華氏 = 1.8*摂氏 + 32 は float にする必要があります。したがって、b は float でなければなりません。

次に、入力パラメーターを介して関数から値を返すべきではありません (ポインターを学習するか、ref によって呼び出す場合を除きます)。私はあなたのコードを次のように書き直します:

include<stdio.h>

float Cel_To_Fah(int a); // function declaration

int main (void)

{

    int a;
    float b;

    printf(" Enter temperatrure:  "); scanf("%d", &a);

    b=Cel_To_Fah(a); // function call

    printf("The temperature is: %.2f\n", b);  //showing 2 decimal places

    return 0;

} // main

float Cel_To_Fah(int a)

{
    float b;

    b=1.8*(float)a+32;   //cast a from int to float

    return b;

} // Cel_To_Fah
于 2013-10-14T18:57:33.257 に答える