大学に入って初めてプログラミングを習いましたが、2回目の授業ではやくも関数のプログラムの宿題が出されました。
問題は「摂氏Cを入力し、これを華氏Fと絶対温度Kに換算せよ。ただし換算式はそれぞれ、F = 32.0 + 1.8c、K = 273.16 + cとし、華氏および絶対温度を求める部分は、それぞれ関数化すること。」というものなのですが、一応教科書にのっとって、作ってみましたが、コンパイルエラーが起こってしまいます。解決策が見つからないので質問することにしました。
以下が私が作ったプログラムです。

-------------------------------------------------

#include<stdio.h>
float Sessi(float);

void main(void)
{
float c;
float kasi, zettaiondo;
c = 25;
kasi = Sessi(c);
zettaiondo = Sessi(c);
printf("華氏F = %f\n", kasi);
printf("絶対温度K = %f\n", zettaiondo);
}

float Sessi(float c)
{
float f;
f = 32.0 + 1.8 * c;
return(f);
float k;
k = 273.16 + c;
return(k);
}

-------------------------------------------------

上はとりあえず、C=25の場合の換算です。
このプログラムですと、実行はできるのですが、C=○のところにどんな数字を入れても華氏F、絶対温度Kともに、77.00000になってしまいます。明らかにおかしいのは自分でも分かりますが、まだはじめたばかりなので分けが分かりません。
慣れている方には馬鹿馬鹿しい質問ですが、ご指摘お願い致します。

このQ&Aに関連する最新のQ&A

A 回答 (2件)

関数の作り方が、間違っています。


この作り方では、最初の return(f); までしか、実行されません。

float Sessi(float c)
{
float f;
f = 32.0 + 1.8 * c;
return(f);
float k;
k = 273.16 + c;
return(k);
}

関数を2つに分け
float Sessi(float c)
float Zettai(float c)
として、 return(); までを、分けて作り、
zettaiondo = Sessi(c); を zettaiondo = Zettai(c);
の、ようにすると良いでしょう。
サブルーチンは、return(); を、見つけるとそこで終了して、メインに帰ってしまいます。
    • good
    • 0

「関数」って言葉の意味を考えたことがありますか?


関数は、ひとつの変数を投入するとひとつの値を戻す、というのが原則です。すなわち、ひとつの関数に引数25を与えたら、戻り値はひとつです。netekunさんのように、ひとつの関数に並列でreturn()を二つ書いたら、一つ目以降は無効な式になります。
華氏と絶対温度の二つの戻り値が必要なら、以下のように二つの関数を定義してはどうでしょう。
----
float CtoF(float c)
{
float f;
f = 32.0 + 1.8 * c;
return(f);
}
float CtoK(float c)
{
float k;
k = 273.16 + c;
return(k);
}
    • good
    • 0

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!

このQ&Aを見た人が検索しているワード

このQ&Aと関連する良く見られている質問

Qメインプリアンプについてです。 メインプリアンプはスピーカーから音を出すために必要なやつ?なんでし

メインプリアンプについてです。
メインプリアンプはスピーカーから音を出すために必要なやつ?なんでしょうか?
pcからメインプリアンプを通じてヘッドホンから聴くよりも、pcからポタアンを通じて聴いた方が良いのでしょうか?
私は、pcからメインプリアンプを通じてヘッドホンから聴くと音が良くなるのかな?と思っていますが、それだけのためにメインプリアンプを買うのはもったいないでしょうか?
質問ばかりですみません。回答よろしくお願いいたします。

Aベストアンサー

>メインプリアンプ
プリメインアンプ

壊れてから相当長いことステレオを聞いていません。
レコードもみかん箱でぎっしり立てて2箱を所有。

処で。
プリアンプは外部入力からの切り替えや制御。
パワーアンプはプリアンプからのボリュームの増幅。
2台を合わせた機能がプリメインアンプ。

PCからでは、ステレオミニプラグ→ピンプラグ(赤・白)
但しケーブルは抵抗入りで、プリアンプのAUXに接続。

中途半端な事をするより、PC用の外付けスピーカー(サラウンド)が売られています。
最良の音質で聞くには、デスクトップPCでサウンドカードも上質に変更しなくてはなりません。
ノートPCでは不可。
>ポタアン
何ですか。

音質を追及するには、プリメインアンプで最低4~50万とスピーカーで数百万は覚悟です。
ついでに、音響室を水で浮かすような設備が必要です。
驚かせてごめんなさい。

QC# String str = @”test”;の@の意味

C#でStringに文字列を代入する際に
String str = @”TEST”;
などと「@」をつけているコードがWeb上にありますが
@の意味はなんですか?また@以外で似たような
記号があれば教えてください。

Aベストアンサー

@"~" で「逐語的リテラル文字列」というらしい.

参考URL:http://msdn.microsoft.com/ja-jp/library/aa691090(VS.71).aspx

QOS 9 -> OS X移行で、メインでないユーザのOLEデータ

今更ですが、OS9.2からOS10.1に移行しています。

OS9.2で

OSのユーザ:メインではない
Outlook Expressのユーザ:メインユーザ

としていたメールのデータをOS Xで
Classic環境のOLEで開こうと思うのですが、
どうやってもOS9でメインユーザだったほうの
メールデータが開かれてしまいます。

どうすれば、メインではなかったユーザの
データが開けるでしょうか
教えて下さい。

Aベストアンサー

どうもメインユーザーしか読み込めないようですのでメインユーザーを読み込んだ後でメインでないメールデータフォルダをメインユーザに名前を変えてみてはどうでしょう。

QUNITY Float型の接尾辞fって

UNITYに限ったものではないのですが、Float型の接尾辞fについて
Wikiやhttp://www.wisdomsoft.jp/40.html/を見てみたのですが
ちょっと難しく理解できません。fってどのような時に使うのでしょうか?

Vector3 構造体のコンストラクタの部分で
public Vector3(float x, float y, float z)   ←となっていますが、
Vector3 v = new Vector3(765, 961, 876); ←fはついていないですし。


またUNITYのTransformで
PositionをX=0.5、Y=0.5、Z=0.5とするのと、X=0.5f、Y=0.5f、Z=0.5fとするのと位置が全然違います。

分かりやすい説明、サイトなどあれば教えてください

Aベストアンサー

これは多分、C#の解説を見たんでしょうね。Unityでは、JavaScript(UnityScript)の他、C#などの言語が使えます。Unityのコードの解説を読むときは、それが何の言語で書かれたものかを理解して読む必要があります。

0.5fとかの「f」は、C#で「float型リテラル」を示すものです。リテラルというのはソース・コード内に直接記述される値のことです。C#では、fを付けずに普通に0.5というように書くとdouble型(floatより値の精度が高い値と判断されます。Unityでは、実数を扱うメソッドなどではすべてfloat型が使われているため、そのまま0.5というように書くと叱られるのです。それで、0.5fというように書いて、float型の値にします。

また、Vector3 v = new Vector3(765, 961, 876);というサンプルコードは、これは引数すべてが整数(int値)になっています。C#では、floatなどの実数の引数に整数を指定すると暗示的キャストといって自動的にfloatに変換してくれるんです。だから、わざわざnew Vector3(765f, 961f, 876f);なんて書かなくていいんです。(doubleからfloatへは自動で変換してくれません。だから、0.5はいちいち0.5fと書かないといけません)

ただし、これは「C#という言語を使ってプログラムを書くとき」の話です。UnityのソフトでインスペクターのTransformに値を設定するときは、(Unityのソフトの部分はプログラミング言語とは関係ないので)0.5と書きます。0.5fって数字はありませんから、そんな具合に書くと正しく判断されないでしょう(おそらく、ゼロ扱いになるのでは)。

またUnityのプログラムでも、JavaScriptではソースコードはすべて0.5と書かれます。0.5fとは書きません(書いても動きますが意味ありません)。言語が違えば、書き方も変わってくるのです。

Unityの解説サイトなどでは、C#とJavaScriptが混在しています。そして大抵の場合、C#などの言語は既に理解しているものとして詳しい説明は省いてます。ですので、まずはC#について初歩から学んでおくとよいと思います。

これは多分、C#の解説を見たんでしょうね。Unityでは、JavaScript(UnityScript)の他、C#などの言語が使えます。Unityのコードの解説を読むときは、それが何の言語で書かれたものかを理解して読む必要があります。

0.5fとかの「f」は、C#で「float型リテラル」を示すものです。リテラルというのはソース・コード内に直接記述される値のことです。C#では、fを付けずに普通に0.5というように書くとdouble型(floatより値の精度が高い値と判断されます。Unityでは、実数を扱うメソッドなどではすべてfloat型が使わ...続きを読む

QプリメインアンプのSENDとRETURN端子の活用について

初歩的質問ですが、SANSUIプリメインアンプA-α7について。
①A-α7プリアンプ部のみを使用してこれに他のメインアンプとスピーカーを
 接続することはできるのでしょうか。(SEND→RCAコード→他メインIN)
②又A-α7の音量VRはプリアンプ側にあるのでしょうか。
 (他のメインアンプにVRが無い為)
取説が無い為宜しくお願い致します。

Aベストアンサー

①できます。

②プリアンプ側で音量調整します。普通メインアンプにはその機能はありません。

Q単位換算係数の換算は可能でしょうか?

あるシステム(A)から、別のシステム(B)に
単位換算係数のインターフェースを行いたいと考えています。

たとえば、
システムAでは 単位a:単位b
システムBでは 単位b:単位c の比率を保持する状態を作り、
システムAからBへ何らかの数量のインターフェースを行ったとき、
単位a→単位cの換算を簡易に行いたいのです。

各システムのテーブル構造は以下のようになっています。

--------------------------------------------
<<システムA 品目単位換算マスタ>> ●=key
●品目コード
●代替単位
 分子
 分母
 システムA基本数量単位
--------------------------------------------

--------------------------------------------
<<システムB 品目単位換算マスタ>> ●=key
●品目コード
●代替単位
 分子
 分母
 システムB基本数量単位
--------------------------------------------

システムAでは基本数量単位に対して考えられうるすべての
換算分母、分子を持っています。
システムBはそれを利用して、自システムの数量単位を正とする
換算分母、分子を持ちたいと考えています。
このようなインターフェースは可能でしょうか?
コンピュータで比率を計算しようとすると小数が出てきますので、
分母、分子といった項目どうやって格納してよいか検討がつきません。。
言語はC#です。

いくら考えてもわからないので、お聞きすることにいたしました。
どなたかお知恵をお貸し願えませんか?
よろしくお願いいたします。

あるシステム(A)から、別のシステム(B)に
単位換算係数のインターフェースを行いたいと考えています。

たとえば、
システムAでは 単位a:単位b
システムBでは 単位b:単位c の比率を保持する状態を作り、
システムAからBへ何らかの数量のインターフェースを行ったとき、
単位a→単位cの換算を簡易に行いたいのです。

各システムのテーブル構造は以下のようになっています。

--------------------------------------------
<<システムA 品目単位換算マスタ>> ●=key
●品目コード
●代替単位...続きを読む

Aベストアンサー

変換係数は全て分子・分母とも整数の分数で保持しているということですか。
システムA基本数量単位からシステムB基本数量単位への変換係数(分数)はあるんですよね。

それだと分数(有理数)計算用のライブラリを作れば済むことでは? 分数の掛け算なんて分子同士、分母同士で掛ければ良いだけだし、割り算も分子分母を入れ替えるだけで同様だしね。
後は約分だけ作れば質問の用途には十分でしょう。約分は分子分母を公約数で割るだけです。公約数は互除法で求まります。
# 通分も実装すれば四則演算が可能です

Q(ミニ)コンポのプリメインアンプと,単独販売のプリメインアンプとの比較

例えば,15万円のコンポ(プリメインアンプ5万円,CDプレーヤー5万円,スピーカー5万円 相当)があるとして,このプリメインアンプと,単独販売の5万円のプリメインアンプとを比較すると,コンポのプリメインアンプは大きく劣りますか?メーカーの製造姿勢などについても知りたいです。

Aベストアンサー

システムコンポのアンプは、CDプレーヤーやスピーカー込みで、このシステムコンポに最適なように調整されているので、当然単品のプリメインアンプを他のスピーカーやCDプレーヤーにつなげれば、しかも50,000円のものと比べれば、確実に劣ってしまうでしょう。これはそのシステムコンポのアンプが性能が悪いと言うことではなく、他の物とつなげると相性が悪い場合がある、と言う意味です。

しかし、次に購入するまでのつなぎとしては悪くない使い方だと思います。
もちろんプリメインアンプの出力のワット数などをきちんと調べて、そのプリメインアンプにあうスピーカーを購入することが前提です。

ご質問の内容が今お持ちのそのようなプリメインアンプを単品アンプとして使われようとしているのかどうか、それとも150,000円のシステムコンポを購入するかどうか迷ってらっしゃるのかが分からないので何とも申し上げられませんが、気になることが1つありました。
よく言われていることですが、この3つの機器にかける金額の割合です。
一般的にはこう言われています。まずスピーカーには1番お金をかける。その次にアンプにお金をかける。CDプレーヤーはこの3つのうちで1番値段が低いもの。
質問者様は、この3つを同じ値段に設定されていますが、とにかくスピーカーにお金をかけるのが大切です。
この割合が、確かうろ覚えですが、5・4・3だったと記憶しています。記憶違いがあるかも知れませんが、優先順位は間違っていません。また金額の割合についても、私の記憶違いで誤っているかもしれませんが、そんなに変わらないはずです。

システムコンポのアンプは、CDプレーヤーやスピーカー込みで、このシステムコンポに最適なように調整されているので、当然単品のプリメインアンプを他のスピーカーやCDプレーヤーにつなげれば、しかも50,000円のものと比べれば、確実に劣ってしまうでしょう。これはそのシステムコンポのアンプが性能が悪いと言うことではなく、他の物とつなげると相性が悪い場合がある、と言う意味です。

しかし、次に購入するまでのつなぎとしては悪くない使い方だと思います。
もちろんプリメインアンプの出力のワット数などを...続きを読む

Qfmlのconfig.phで使う、q{~};やq#~#;q%~%;は全て同じ意味?

メーリングリストのカスタマイズをしていて、ネット上で情報を集めているのですがどうしても分からないところがあります。 fml 4.0
$SMTP_OPEN_HOOKなどのHOOKを行うときに、q{~};やq#~#;q%~%を同じサイトであっても使い分けているようで、SMTP_OPEN_HOOKの時には =q{~}; を、START_HOOKでは =q#~#; のようになっています。
プログラムというもの自体触ったことはないのですが、一応記号が変わっているだけで中身は同じなのかなと思っています。
実際のところ別物でしょうか?

fmlとqで検索をかけても情報が引っかかりませんし、fmlとq#などとしてもfmlでしか検索できないみたいで八方ふさがりです。
よろしくお願いします。

Aベストアンサー

fmlはPerlという言語で書かれています。これはPerlの記法の問題です。
どれも意味は同じです。違うのは、
・囲まれた内部で使われて無い記号を使って囲むため
・書いた人が違う
・気分によって使い分け?

Q東西メインレースが昨年とは逆なのは?

昨年までは何年も関西のメインレースが関東のあとだったと思います。たとえ、関東でG1があっても、関西のメインはそのあとでした。
今年になって、関東のメインレースのほうがあとになった理由ってなんですか?はくぼ競馬の影響?

Aベストアンサー

>はくぼ競馬の影響?
そうだと思います。
最終競走を16:40(10/4のみ16:45)に設定しています。
これは日暮れ時刻を考慮しています。(照明下でのナイターレースはしない[できない])
そこから2レース逆算するとメインは今の発走時刻(15:35)くらいになります。
関西メインの発走時刻を変えずに関東メインをその前にすれば逆も可能と思いますが、
それはTV中継(たとえば15:00~16:00)などを考慮すると難しいのかもしれません。

以下、JRAホームページより:(pdfファイルです)
平成21年度秋季競馬番組の概要について
http://www.jra.go.jp/keiba/calender/program/pdf/h21-gai03.pdf
8.発走時刻について
発走時刻については、お客様により参加していただけるよう、テレビ放映時間および
日没時間を考慮して設定することとし、各場間のレース間隔について、一部を除き各
10分以上といたします。
(以下省略・・・リンク先を参照ください)

Qpic16FのコンパイルにCCSのCコンパイラ

pic16FのコンパイルにCCSのCコンパイラをMPLABに統合した環境で使用しています。
大文字と小文字の区別をつけることは出来ないのでしょうか?
誰か教えてください。

Aベストアンサー

何の大文字と小文字を区別したいのでしょうか?


人気Q&Aランキング

おすすめ情報